Dobrý den, potýkám se s dotazem nad dvěma tabulkami. První tabulka tblPRODEJ obsahuje Datum, Zakaznik, Prodej. Druhá tabulka tblOP obsahuje obchodní podmínky pro zákazníky v danném obdobi, tj. Zakaznik, StartDate, EndDate, Procento. Pole StardDate určuje počátek platnosti obchodních podmínek, pole EndDate určuje konec platnosti obchodních podmínek. Jak napsat dotaz, tak aby pro každý řádek z tabulku tblProdej se hodnota z pole Prodej vynásobila hodnotou z pole Procento z tabulky tblOP. Příklad: tblProdej Datum;Zakaznik;Prodej 1.1.2011;Zakaznik01;12000Kč 20.2.2011;Zakaznik01;15000Kč tblOP idZakaznik;StartDate;EndDate;Procento Zakaznik01;1.1.2011;31.1.2011;10% Zakaznik01;1.2.2011;15.3.2011;20% Výsledek by pak měl být 1.1.2011;Zakaznik01;12000Kč*10% 20.2.2011;Zakaznik01;15000Kč*20% Napsal jsem si tento SQL dotaz, ale nejsem si jistý, jestli je správně napsaný, výsledek dává správný, ale hledám nějaké jiné elegantnější řešení.
SELECT tblProdej.Datum, tblProdej.Zakaznik, tblProdej.Prodej, tblOP.StartDate, tblOP.EndDate, (tblProdej.Prodej*tblOP.Procento) as Vysledek
FROM tblProdej INNER JOIN tblOP ON tblProdej.Zakaznik = tblOP.Zakaznik
WHERE tblOP.StartDate<=[Datum] AND tblOP.EndDate>=[Datum]
|