Autor Zpráva
bob.99
Profil *
Dobrý den,
potřeboval bych poradit se "složitějším" sql dotazem.

create table `postovneceny` (
`id` double ,
`idtyp` double ,
`platnostod` date ,
`platnostdo` date ,
`cena` decimal (12),
`cenafranko` decimal (12),
`poradi` double ,
`active` double
);
create table `postovne` (
`id` double ,
`datum` date ,
`oddeleni` double ,
`idtyp` double ,
`pocet` double ,
`frankocena` double ,
`zapsal` double ,
`datum_last` datetime ,
`active` double
);

... a potreboval bych zjistit v jednom sql dotazu skutecnou cenu podle pole.postovne.frankocena. Pole postovne.frankocena nabyva hodnot 1 nebo 2 ...pokud 1 tak se bere cena z postovnecena.cena ...pokud 2 tak z postovnecena.cenafranko

Zkoušel jsem to nějak takhle ale výsledek je špatně:

SELECT CASE WHEN postovne.frankocena = 1 THEN SUM(postovne.pocet * postovneceny.cenafranko) WHEN postovne.frankocena = 2 THEN SUM(postovne.pocet * postovneceny.cena) END FROM postovne LEFT JOIN postovneceny.....


Díky za radu
ninja
Profil
SELECT IF(postovne.frankocena = 1, postovnecena.cena, postovnecena.cenafranko) AS cena_postovneho FROM ...
bob.99
Profil *
Něco podobnýho s IF jsem taky zkoušel, ale sečte to potom jen z 1 sloupce....

SELECT IF(postovne.frankocena = 1, SUM(postovne.pocet * postovneceny.cenafranko) , SUM(postovne.pocet * postovneceny.cena) ) FROM postovne LEFT JOIN postovneceny....
bob.99
Profil *
Problém vyřešen, takhle to funguje jak má :-)

SELECT SUM(postovne.pocet * IF(postovne.frankocena = 1, postovneceny.cena, postovneceny.cenafranko)) AS postovnecena...
Toto téma je uzamčeno. Odpověď nelze zaslat.