Autor | Zpráva | ||
---|---|---|---|
jataky Profil |
#1 · Zasláno: 23. 5. 2014, 10:10:44
Zdravím, jak by šlo jedním dotazem udělat rozdíl těchto dvou dotazů :
SELECT sum(kusy) FROM zmeny WHERE nakup_vymena='N' - SELECT sum(kusy) FROM zmeny WHERE nakup_vymena='V' děkuji |
||
aDAm Profil |
#2 · Zasláno: 23. 5. 2014, 10:50:30
a je nutné to dělat jedním dotazem?
|
||
juriad Profil |
#3 · Zasláno: 23. 5. 2014, 10:55:15 · Upravil/a: juriad
http://sqlfiddle.com/#!2/7ee46e/4
Pokud je nakup_vymena 'N', tak ho sečti kladně a pokud je to 'V', tak ho sečti záporně. Operátor porovnání totiž vrací 1 při rovnosti a 0 při nerovnosti; takže pro záznam typu 'N' to bude + 1 * kusy - 0 * kusy Případně zajímavá varianta je také: SELECT nakup_vymena, SUM(kusy) suma FROM zmeny GROUP BY nakup_vymena |
||
jataky Profil |
#4 · Zasláno: 23. 5. 2014, 11:23:13
juriad:
První varianta je to co jsem potřeboval. Druhou varintu jsem měl, ale potřeboval jsem vrátit jeden řádek. Díky |
||
Kajman Profil |
#5 · Zasláno: 23. 5. 2014, 11:26:57
Je možné i něco takového
SELECT (SELECT sum(kusy) FROM zmeny WHERE nakup_vymena='N') - (SELECT sum(kusy) FROM zmeny WHERE nakup_vymena='V') rozdil FROM DUAL |
||
Časová prodleva: 11 let
|
0