Skip navigation links

MySQL Forums :: German :: Anfängerfrage mehrere Bedingungen


Advanced Search

Re: Anfängerfrage mehrere Bedingungen
Posted by: Thomas Wiedmann ()
Date: January 24, 2012 07:00AM

Hallo Tim,

stimmt, jetzt wird es sogar mir klarer (hoffentlich). Es geht doch nichts über eine echtes Beispiel.

Ich habe mir mal folgendes überlegt:
CREATE TABLE gesamtbetrag (
 id INT NOT NULL,
 betrag DEC(6,2),
 PRIMARY KEY (id)
);

INSERT INTO gesamtbetrag VALUES
( 1, 100 ),
( 2, 200 );


mysql> select * from gesamtbetrag;
+----+--------+
| id | betrag |
+----+--------+
|  1 | 100.00 |
|  2 | 200.00 |
+----+--------+
2 rows in set (0.00 sec)

mysql>

/**
* Beispiel für:
* Schalter 1 ist ON  dann +11
* Schalter 2 ist ON  dann +22
* Schalter 3 ist ON  dann +33
*/
UPDATE gesamtbetrag
   SET betrag = betrag + ( SELECT CASE 
                                   WHEN 1 IS NOT NULL THEN 11 
                                   ELSE 0
                                  END ) 
                       + ( SELECT CASE 
                                   WHEN 2 IS NOT NULL THEN 22 
                                   ELSE 0
                                  END) 
                       + ( SELECT CASE 
                                   WHEN 3 IS NOT NULL THEN 33
                                   ELSE 0
                                  END)                                    

 WHERE id = 1;

mysql> select * from gesamtbetrag;
+----+--------+
| id | betrag |
+----+--------+
|  1 | 166.00 |
|  2 | 200.00 |
+----+--------+
2 rows in set (0.00 sec)

mysql>

/**
* Beispiel für:
* Schalter 1 ist OFF 
* Schalter 2 ist ON  dann + 22
* Schalter 3 ist OFF
*/
UPDATE gesamtbetrag
   SET betrag = betrag + ( SELECT CASE 
                                   WHEN NULL IS NOT NULL THEN 11 
                                   ELSE 0
                                  END ) 
                       + ( SELECT CASE 
                                   WHEN 2 IS NOT NULL THEN 22 
                                   ELSE 0
                                  END) 
                       + ( SELECT CASE 
                                   WHEN NULL IS NOT NULL THEN 33
                                   ELSE 0
                                  END)                                    

 WHERE id = 2;
 
 
mysql> select * from gesamtbetrag;
+----+--------+
| id | betrag |
+----+--------+
|  1 | 166.00 |
|  2 | 222.00 |
+----+--------+
2 rows in set (0.00 sec)

mysql>

In welcher Form jetzt "Schalter" in dem SQL erscheint, ist mit noch unklar.
Die Logik ist:
Wenn $Schalter den Wert NULL hat, dann ist er OFF
Wenn $Schalter den Wert NOT NULL hat, dann ist er ON

Grüße
Thomas

Options: ReplyQuote


Subject Views Written By Posted
Anfängerfrage mehrere Bedingungen 1443 Tim P 01/23/2012 07:39AM
Re: Anfängerfrage mehrere Bedingungen 613 Thomas Wiedmann 01/23/2012 08:30AM
Re: Anfängerfrage mehrere Bedingungen 557 Tim P 01/23/2012 08:45AM
Re: Anfängerfrage mehrere Bedingungen 681 Thomas Wiedmann 01/23/2012 11:19AM
Re: Anfängerfrage mehrere Bedingungen 752 Tim P 01/23/2012 01:42PM
Re: Anfängerfrage mehrere Bedingungen 624 Thomas Wiedmann 01/24/2012 12:48AM
Re: Anfängerfrage mehrere Bedingungen 790 Tim P 01/24/2012 05:54AM
Re: Anfängerfrage mehrere Bedingungen 757 Thomas Wiedmann 01/24/2012 07:00AM
Re: Anfängerfrage mehrere Bedingungen 560 Tim P 01/25/2012 01:32AM
Re: Anfängerfrage mehrere Bedingungen 730 Thomas Wiedmann 01/25/2012 04:20AM
Re: Anfängerfrage mehrere Bedingungen 622 Tim P 01/25/2012 06:40AM
Re: Anfängerfrage mehrere Bedingungen 579 Thomas Wiedmann 01/25/2012 06:23PM
Re: Anfängerfrage mehrere Bedingungen 595 Tim P 01/26/2012 10:06AM
Re: Anfängerfrage mehrere Bedingungen 682 Thomas Wiedmann 01/26/2012 06:39PM
Re: Anfängerfrage mehrere Bedingungen 590 Tim P 01/29/2012 06:35AM
Re: Anfängerfrage mehrere Bedingungen 693 Tim P 01/23/2012 08:30AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.