Code: Select all
SELECT
`widok_pozycje_z_terminami`.`okres`,
SUM( ( CASE WHEN `waluty`.`skrot` = 'EUR' THEN `wyroby4`.`cena_wyrobu` * `kursy_walut`.`kurs_euro` ELSE `wyroby4`.`cena_wyrobu` END - ( CASE WHEN `waluty`.`skrot` = 'EUR' THEN `wyroby4`.`cena_wyrobu` * `kursy_walut`.`kurs_euro` ELSE `wyroby4`.`cena_wyrobu` END * `widok_pozycje_z_terminami`.`rabat` / 100 ) ) * `widok_pozycje_z_terminami`.`ilosc` ) AS `sprzedaz`
FROM
`baza`.`widok_pozycje_z_terminami` AS `widok_pozycje_z_terminami`okresy`, `baza`.`zamowienia` AS `zamowienia`, `baza`.`dzialy` AS `dzialy`, `baza`.`zamawiajacy` AS `zamawiajacy`, `baza`.`wyroby4` AS `wyroby4`, `baza`.`waluty` AS `waluty`, `baza`.`kursy_walut` AS `kursy_walut`
WHERE
( `zamowienia`.`ID_dzialu_realizujacego` = `dzialy`.`ID_dzialu` AND `zamowienia`.`ID_zamawiajacego` = `zamawiajacy`.`ID_zamawiajacego` AND `widok_pozycje_z_terminami`.`ID_zamowienia` = `zamowienia`.`ID_zamowienia` AND `widok_pozycje_z_terminami`.`ID_wyrobu` = `wyroby4`.`ID_wyrobu` AND `wyroby4`.`ID_waluty` = `waluty`.`ID_waluty` AND `zamowienia`.`reklamacja` = FALSE AND `zamowienia`.`ID_zamawiajacego` NOT IN ( 4, 5, 7, 9 ) AND `zamowienia`.`czy_wewnetrzne` = FALSE AND `zamawiajacy`.`ID_zamawiajacego` = :a AND `dzialy`.`ID_dzialu` = :b ) OR
( `zamowienia`.`ID_dzialu_realizujacego` = `dzialy`.`ID_dzialu` AND `zamowienia`.`ID_zamawiajacego` = `zamawiajacy`.`ID_zamawiajacego` AND `widok_pozycje_z_terminami`.`ID_zamowienia` = `zamowienia`.`ID_zamowienia` AND `widok_pozycje_z_terminami`.`ID_wyrobu` = `wyroby4`.`ID_wyrobu` AND `wyroby4`.`ID_waluty` = `waluty`.`ID_waluty` AND `zamowienia`.`reklamacja` = FALSE AND `zamowienia`.`ID_zamawiajacego` NOT IN ( 4, 5, 7, 9 ) AND `zamowienia`.`czy_wewnetrzne` = FALSE AND `zamawiajacy`.`ID_zamawiajacego` = :a AND :b IS NULL ) OR
( `zamowienia`.`ID_dzialu_realizujacego` = `dzialy`.`ID_dzialu` AND `zamowienia`.`ID_zamawiajacego` = `zamawiajacy`.`ID_zamawiajacego` AND `widok_pozycje_z_terminami`.`ID_zamowienia` = `zamowienia`.`ID_zamowienia` AND `widok_pozycje_z_terminami`.`ID_wyrobu` = `wyroby4`.`ID_wyrobu` AND `wyroby4`.`ID_waluty` = `waluty`.`ID_waluty` AND `zamowienia`.`reklamacja` = FALSE AND `zamowienia`.`ID_zamawiajacego` NOT IN ( 4, 5, 7, 9 ) AND `zamowienia`.`czy_wewnetrzne` = FALSE AND :a IS NULL AND `dzialy`.`ID_dzialu` = :b ) OR
( `zamowienia`.`ID_dzialu_realizujacego` = `dzialy`.`ID_dzialu` AND `zamowienia`.`ID_zamawiajacego` = `zamawiajacy`.`ID_zamawiajacego` AND `widok_pozycje_z_terminami`.`ID_zamowienia` = `zamowienia`.`ID_zamowienia` AND `widok_pozycje_z_terminami`.`ID_wyrobu` = `wyroby4`.`ID_wyrobu` AND `wyroby4`.`ID_waluty` = `waluty`.`ID_waluty` AND `zamowienia`.`reklamacja` = FALSE AND `zamowienia`.`ID_zamawiajacego` NOT IN ( 4, 5, 7, 9 ) AND `zamowienia`.`czy_wewnetrzne` = FALSE AND :a IS NULL AND :b IS NULL )
GROUP BY `widok_pozycje_z_terminami`.`okres`
ORDER BY `widok_pozycje_z_terminami`.`termin` ASC
04.2015 | 585 $
05.2015 | 476 $
07.2015 | 25 $
08.2015 | 1179 $
So when in June there is no orders from firm :a produced by department :b then there is no 06.2015 in my query. And i wont to have:
04.2015 | 585 $
05.2015 | 476 $
06.2015 | 0 $
07.2015 | 25 $
08.2015 | 1179 $
I have no idea how to do it. Probably I need some subquery but i dont know how to comnibe subqery with parameters and "GROUP BY". Can anybode help me?