ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
2154
2154
EMPFEHLEN
-
Hallo!
zur Erklärung:
habe die Tabellen Province und Country. Ich will schaun, ob die Population von Country Austria mit der addierten Summe von Province (Wien, Kärnten, Burgenland etc) übereinstimmt. Aus diesem Grund will ich die 2 Werte subtrahieren. Kommt 0 raus --> stimmen sie überein
das kommt raus:PHP-Code:select sum(population) from province where country= 'A'
minus
select population from country where code = 'A'
DAS IST ABER FALSCHPHP-Code:SUM(POPULATION)
----------------------
7989000
1 rows selected
Die Summe von Population ist 7989000 ABER die Population in Country ist 8023244!
Warum werden die 2 Werte nicht subtrahiert?
Was mache ich falsch?!
Danke für eure Hilfe!
-
13.05.07 15:26 #2
Dein Query ist nicht wirklich richtig, vermute ich, versuch es einmal so:
Code sql:1 2 3 4
SELECT (SELECT SUM(`population`) FROM `province` WHERE `country` = 'A') - (SELECT `population` FROM `country` WHERE `code` = 'A')
"minus" finde ich bei MySQL nicht.
Funktioniert aber erst ab Version 4.1+, wegen der Subqueries.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Hallo,
MINUS gehört zu den Mengenoperatoren und hat nichts mit Subtraktion zu tun.
Wenn es von der Datenbank unterstützt wird, so kann man damit die Datensätze erhalten, die im ersten SELECT-Block enthalten sind, abzüglich denen, die im zweiten SELECT-Block enthalten sind.
Es wird also keinerlei Subtraktion durchgeführt, sondern nur eine Mengenoperation, vergleichbar mit UNION, UNION ALL, INTERSECT usw.
So wie es Felix beschrieben hat, sollte es das Ergebnis bringen, was du erwartest.
Markus
-
Danke für die Antworten.
Ich hab vergessen zu erwähnen, dass ich auf einer Oracle DB arbeite.
Wenn ich jetzt deinen Vorschlag ausprobiere bekomme ich flg. Fehlermeldung:
PHP-Code:
Error starting at line 1 in command:
select
(select sum(population) from province where country = 'A')
-
(select population from country where code = 'A')
Error at Command Line:4 Column:49
Error report:
SQL Error: ORA-00923: Schlüsselwort FROM nicht an erwarteter Stelle gefunden
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
-
Hallo,
ja bei Oracle musst du zwingend eine Tabelle in der FROM-Klausel angeben.
Also in der äusseren Query einfach noch ein
Code sql:1 2
... FROM DUAL
anhängen.
Markus
-
Danke für den Tipp!
Meinst du das so?
oder doch ganz anders?PHP-Code:select
(select field from dual table)
-
(select field from dual table)
-
Hallo,
nein so:
Code sql:1 2 3 4 5
SELECT (SELECT SUM(population) FROM province WHERE country = 'A') - (SELECT population FROM country WHERE code = 'A') FROM DUAL
Markus
-
super danke es hat funktioniert
Schönen Abend noch
Michael
Ähnliche Themen
-
Problem bei SOAP und default werten
Von HyperTronix im Forum PHPAntworten: 2Letzter Beitrag: 27.06.09, 12:41 -
Problem mit function und Übergabe von Werten.
Von sid61 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 22.02.09, 17:50 -
Problem mit Array und seinen Werten
Von Arndtinho im Forum PHPAntworten: 1Letzter Beitrag: 18.12.07, 18:09 -
Problem mit Koordinaten-Werten
Von Fey im Forum Flash PlattformAntworten: 5Letzter Beitrag: 28.11.02, 15:39 -
problem bei ausgabe von gefilterten werten...
Von Alexander Schuc im Forum ASPAntworten: 2Letzter Beitrag: 20.12.01, 15:20





Zitieren

Login





