Autor | Zpráva | ||
---|---|---|---|
stepanka Profil * |
#1 · Zasláno: 1. 8. 2013, 13:47:07
Ahoj,
uměl by mi prosím někdo poradit? Mám dvě tabulky: prijemky id 1 2 3 prijemky_detail id id_prijemky sklad 1 1 -5 2 1 -8 3 1 -3 4 1 -6 5 1 -4 6 1 -1 7 1 -2 8 2 -8 9 2 -3 10 2 4 11 2 1 12 3 5 12 3 2 A potřebovala bych vybrat jen ty příjemky (z první tabulky), které mají v detailu (druhá tabulka) všechny sklady záporné. V tomto případě by to byla pouze příjemka s ID=1. Sepsala jsem toto: SELECT SQL_CALC_FOUND_ROWS p.*, p.* FROM prijemky p WHERE p.id NOT IN (SELECT d.id_prijemky FROM prijemky_detail d WHERE d.sklad < 0) GROUP BY p.id ORDER BY id DESC A zkouším to různě upravovat, ale nevrací to správné výsledky. Už nevím, jak to změnit více, neuměl by mi někdo pomoct? Moc děkuju! |
||
peta Profil |
SELECT b.id FROM prijemky_detail a LEFT JOIN prijemky b ON b.id=a.id_prijemky WHERE a.sklad<0 ORDER BY b.id DESC |
||
stepanka Profil * |
#3 · Zasláno: 1. 8. 2013, 14:41:58
peta:
Tohle nefunguje, ale děkuju. Vypíše to seznam těch detailů, ne seznam příjemek, což je špatně. |
||
peta Profil |
Jsem to pak jeste asi 4 min upravoval, jsem mel prehozene promenne z a, b. Jestli jsi treba nepouzila starsi verzi.
Aha, jo, ty tam mas pro jedno b.id duplicity. |
||
Kajman Profil |
Třeba takto
SELECT id_prijemky FROM prijemky_detail GROUP BY id_prijemky HAVING Count(*) = Sum(sklad < 0) Nebo jednodušeji HAVING Max(sklad) < 0 |
||
stepanka Profil * |
#6 · Zasláno: 1. 8. 2013, 19:00:46
peta:
Moc díky, ale ani tak mi Tvé řešení nefunguje, to jsem zkoušela hned mezi prvníma ještě sama, ale vybírá to i záznamy, kde se vyskytuje plusový sklad. Kajman: Tohle je ono :-) Mockrát děkuju! Funguje dobře. Potřebuju pak vybírat ještě ty příjemky, kde jsou sklady pouze plusové, na to jsem přišla: HAVING MIN(sklad) > 0 |
||
Kajman Profil |
#7 · Zasláno: 1. 8. 2013, 19:56:31
stepanka:
„kde je kombinace kladných a záporných skladů“ HAVING Min(sklad) < 0 AND Max(sklad) > 0 S tím, že ty příjemky, které nemají nenulový (žádný nebo rovný 0) sklad nebudou ve výsledku ze žádného ze tří dotazů. |
||
stepanka Profil * |
#8 · Zasláno: 1. 8. 2013, 20:00:28
Kajman:
Aha, takto, to jsem zkoušela taky, akorát jsem opakovala i to "having". Super, mockrát děkuju, moc jsi mi pomohl. |
||
Časová prodleva: 11 let
|
0