Hi
look at this query
how can i do it right way ?
My broken query:
Tables:
Webdesign
look at this query
how can i do it right way ?
My broken query:
Code:
SELECT
a.ID
,SUM(IF(h.CenaPromocyjna,h.CenaPromocyjna,SUBSTRING_INDEX(MAX(CONCAT(g.DataZmiany,'|',g.CenaSprzedazy)), '|', -1)) * f.Ilosc)
FROM sklep_Zamowienia AS a
LEFT JOIN sklep_ZamowieniaProdukty AS f ON f.IDZamowienia=a.ID
LEFT JOIN sklep_ProduktyCeny AS g ON g.IDProduktu=f.IDProduktu
LEFT JOIN sklep_ProduktyPromocje AS h ON (h.IDProduktu=f.IDProduktu AND h.OdKiedy <= a.DataZamowienia AND h.DoKiedy >= a.DataZamowienia)
GROUP BY a.ID
Tables:
Code:
CREATE TABLE `sklep_Zamowienia` (
`ID` int(10) unsigned NOT NULL auto_increment,
`DataZamowienia` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`ID`),
KEY `IX_DataZamowienia` (`DataZamowienia`)
) ENGINE=MyISAM;
CREATE TABLE `sklep_ZamowieniaProdukty` (
`ID` int(11) unsigned NOT NULL auto_increment,
`IDZamowienia` int(11) unsigned NOT NULL default '1',
`IDProduktu` int(11) unsigned NOT NULL default '1',
`Ilosc` mediumint(9) unsigned NOT NULL default '1',
PRIMARY KEY (`ID`),
KEY `IX_IDProduktu` (`IDProduktu`)
) ENGINE=MyISAM;
CREATE TABLE `sklep_ProduktyCeny` (
`IDProduktu` int(10) unsigned NOT NULL default '0',
`DataZmiany` datetime NOT NULL default '0000-00-00 00:00:00',
`CenaZakupu` float(7,4) unsigned default NULL,
`CenaSprzedazy` float(7,2) unsigned NOT NULL default '0.00',
PRIMARY KEY (`IDProduktu`,`DataZmiany`)
) ENGINE=MyISAM;
CREATE TABLE `sklep_ProduktyPromocje` (
`ID` int(10) unsigned NOT NULL auto_increment,
`IDProduktu` int(10) unsigned NOT NULL default '1',
`OdKiedy` date NOT NULL default '0000-00-00',
`DoKiedy` date NOT NULL default '0000-00-00',
`CenaPromocyjna` float(8,2) unsigned NOT NULL default '0.00',
PRIMARY KEY (`ID`),
KEY `IX_IDProduktuOdKiedyDoKiedy` (`IDProduktu`,`OdKiedy`,`DoKiedy`)
) ENGINE=MyISAM;
Webdesign