Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 24. 8. 2008, 23:13:14
Ahoj,
prosím neporadil by mi někdo s jedním dotazem? Vypadá takto: SELECT sum(o.celkova_cena) AS celkova_cena, sum(o.celkem_s_dph) AS celkem_s_dph, sum(o.celkem_bez_dph) AS celkem_bez_dph, sum(o.celkem_poplatek) AS celkem_poplatek, sum(o.doprava_cena) AS doprava_cena, s.$nazev_stavu AS stav_nazev, count(o.id_objednavka) AS pocet_objednavek FROM stavy s LEFT JOIN objednavky o ON o.stav=s.id ".$sql_on2." LEFT JOIN doprava_dopravci d ON d.id_dopravce=o.id_dopravce AND d.dph <> 00 GROUP BY s.id Funguje v pořádku až na jednu drobnost.. Já bych potřebovala do řádku sum(o.doprava_cena) AS doprava_cena, započítávat pouze ceny, které mají jiné DPH než nula, což je na řádku AND d.dph <> 00 ... akorát to nefunguje tak jak by mělo. Započítává mi to totiž úplně všechny ceny doprav, ne jen Ty, co nemají DPH 0. Budu moc ráda za jakékoliv rady a předem děkuju. |
||
Paja Profil |
#2 · Zasláno: 24. 8. 2008, 23:19:24
<> '0' |
||
Stepanka Profil * |
#3 · Zasláno: 24. 8. 2008, 23:21:25
Paja
Díky, ale v tom chyba není.. |
||
Paja Profil |
#4 · Zasláno: 24. 8. 2008, 23:26:40 · Upravil/a: Paja
tak přidat
or is null edit: and is not null |
||
Stepanka Profil * |
#5 · Zasláno: 24. 8. 2008, 23:29:09
Paja
Bohužel taky ne.. v databázi je opravdu uložena hodnota buď "19", nebo "00". |
||
Stepanka Profil * |
#6 · Zasláno: 24. 8. 2008, 23:30:39
Paja
edit taky ne |
||
Paja Profil |
#7 · Zasláno: 24. 8. 2008, 23:34:05 · Upravil/a: Paja
SELECT sum(o.celkova_cena) AS celkova_cena, sum(o.celkem_s_dph) AS celkem_s_dph, sum(o.celkem_bez_dph) AS celkem_bez_dph, sum(o.celkem_poplatek) AS celkem_poplatek, sum(o.doprava_cena) AS doprava_cena, s.$nazev_stavu AS stav_nazev, count(o.id_objednavka) AS pocet_objednavek FROM stavy s LEFT JOIN objednavky o ON o.stav=s.id ".$sql_on2." LEFT JOIN doprava_dopravci d ON d.id_dopravce=o.id_dopravce AND d.dph = '19' GROUP BY s.id |
||
Stepanka Profil * |
#8 · Zasláno: 24. 8. 2008, 23:39:08
Paja
děkuju za trpělivost a ochotu, ale taky ne.. V tomhle řádku, myslím, chyba není.. Spíš někde jinde. Ale vůbec nevím kde. Už nad tím sedím asi 4 hodiny. |
||
Stepanka Profil * |
#9 · Zasláno: 24. 8. 2008, 23:44:19
Já když úplně celý ten druhý LEFT JOIN vymažu (ty dva řádky), tak se výsledek nijak nezmění.. Ale když oddělám jen LEFT a zbytek JOINu nechám, vyberou se JEN TY ŘÁDKY, kde to DPH je nenulové. Ale já chci vybrat všechny, jen tu dopravu_cenu nezapočítávat, pokud je DPH nenulové..
|
||
Paja Profil |
#10 · Zasláno: 24. 8. 2008, 23:50:36 · Upravil/a: Paja
teď naposled střelím od boku .. místo "AND" dát "WHERE"
|
||
Stepanka Profil * |
#11 · Zasláno: 24. 8. 2008, 23:54:04
Paja
to bohužel ne.. To je výsledek ještě horší než byl. |
||
Paja Profil |
#12 · Zasláno: 25. 8. 2008, 00:12:49
řekl bych, že pokud to nebere vůbec v potaz "d.dph" ať se s tím jakkoliv hraješ, bylo by možná od věci to uzávorkovat, a další co mě napadá, pokud je uložené dph v textovém formátu, pak je za potřebí to hodit do uvozovek.. a neporovnávat to s "0" ale s "'00'" ... ale už to vzdávám .. good luck
|
||
joe Profil |
#13 · Zasláno: 25. 8. 2008, 00:13:33 · Upravil/a: joe
Šel bych na to nějak takhle
SELECT sum(o.celkova_cena) AS celkova_cena, sum(o.celkem_s_dph) AS celkem_s_dph, sum(o.celkem_bez_dph) AS celkem_bez_dph, sum(o.celkem_poplatek) AS celkem_poplatek, sum(IF(d.dph <> 00, o.doprava_cena, 0)) AS doprava_cena, s.$nazev_stavu AS stav_nazev, count(o.id_objednavka) AS pocet_objednavek FROM stavy s LEFT JOIN objednavky o ON o.stav=s.id ".$sql_on2." LEFT JOIN doprava_dopravci d ON d.id_dopravce=o.id_dopravce AND d.dph <> 00 GROUP BY s.id --- Nevím jakého typu je sloupec d.dph. Pokud varchar, o tom pochybuju (tak by to bylo v apostrofech). A pak ještě ta podmínka na předposledním řádku, ta už tam pak možná být nemusí - AND d.dph <> 00 |
||
Stepanka Profil * |
#14 · Zasláno: 25. 8. 2008, 00:28:33
joe
Super, dík, tady tohle funguje :-) ... Děkuju moc. |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0