Показать сообщение отдельно
  #19  
Старый 11.06.2014, 17:28
poison-bla poison-bla вне форума
Прохожий
 
Регистрация: 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]) - оно возвращает целое число, представляющее месяц указанной даты. А какую функцию нужно использовать, чтобы она брала во внимание всю дату?
Ответить с цитированием