11.06.2014, 17:28
|
Прохожий
|
|
Регистрация: 17.05.2013
Сообщения: 28
Версия Delphi: Delphi 7, XE5
Репутация: 10
|
|
Код:
ADOQuery1.SQL.Add('SELECT Prod.idProd, Prod.FIO, Prod.Oklad, Prodagy.kodmes, ');
ADOQuery1.SQL.Add(' [Prod].[Oklad]+[Prod].[Oklad]*Switch([Prodagy].[Prodagy]>=10000,0.5, ');
ADOQuery1.SQL.Add(' [Prodagy].[Prodagy] Between 9990 And 5000,0.25,');
ADOQuery1.SQL.Add(' [Prodagy].[Prodagy] Between 4990 And 1000,0.05,');
ADOQuery1.SQL.Add(' [Prodagy].[Prodagy] Between 990 And 0,0) AS ZP,');
ADOQuery1.SQL.Add(' [ZP]-[ZP]/100*3.6-[ZP]/100*15 AS Itogo, Prodagy.Prodagy');
ADOQuery1.SQL.Add('FROM Prod INNER JOIN (SELECT Prodazhi.idProd, Month([date]) AS kodmes, Sum(Prodazhi.Sum) AS Prodagy');
ADOQuery1.SQL.Add('FROM Prodazhi');
ADOQuery1.SQL.Add('GROUP BY Prodazhi.idProd, Month([date])) AS Prodagy ON Prod.idProd = Prodagy.idProd');
ADOQuery1.SQL.Add('WHERE Prodagy.kodmes >= :Date1 AND Prodagy.kodmes < :Date2');
AdoQuery1.Parameters.ParamByName('Date1').Value := Int(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('Date2').Value := Int(DateTimePicker2.Date);
Ничего не выходит. И я думаю, тут дело в Month([date]) - оно возвращает целое число, представляющее месяц указанной даты. А какую функцию нужно использовать, чтобы она брала во внимание всю дату?
|