Autor Zpráva
Stepanka
Profil *
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
<> '0'
ted jen tipuju
Stepanka
Profil *
Paja
Díky, ale v tom chyba není..
Paja
Profil
tak přidat
or is null

edit:
and is not null
Stepanka
Profil *
Paja
Bohužel taky ne.. v databázi je opravdu uložena hodnota buď "19", nebo "00".
Stepanka
Profil *
Paja
edit taky ne
Paja
Profil
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 *
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 *
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
teď naposled střelím od boku .. místo "AND" dát "WHERE"
Stepanka
Profil *
Paja
to bohužel ne.. To je výsledek ještě horší než byl.
Paja
Profil
ř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
Š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 *
joe
Super, dík, tady tohle funguje :-) ... Děkuju moc.
Toto téma je uzamčeno. Odpověď nelze zaslat.