Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

Проблема с запросом   Найти похожие ветки 

 
petvv ©   (2006-11-09 07:28) [0]

Доброго времени суток мастера !
Подмогните с запросом:
select Fuel.Marka, Osnovan.Name, Sum(TotOsnov.Lit) Litr, Sum(TotOsnov.Cur) Den, iif((Sum(TotOsnov.Cur)<>0),Fuel.Price,0) from TotOsnov, Fuel, Osnovan
where ShiftTo>=:QDBeg and ShiftTo<=:QDEnd
and
Fuel.Num=TotOsnov.Product
and
Osnovan.Num=TotOsnov.Osnovanye
group by Marka, Name, Price
Пытаюсь сделать, чтобы если сумма <> 0 подставлял цену, а если = 0 тогда ставил цену = 0. В чём грабли?


 
ЮЮ ©   (2006-11-09 07:41) [1]

грабли в синтаксисе. Нет никаких iif в LocalSQL.

Ну и  что 0 вместо Fuel.Price так существенен, если Sum(TotOsnov.Cur) = 0


 
ЮЮ ©   (2006-11-09 07:54) [2]

Чтбы не показывались нули можно и на клиенте сделать.
Но если хочется всё-таки в запросе, то так:

select
 Fuel.Marka, Osnovan.Name, Sum(TotOsnov.Lit) Litr, Sum(TotOsnov.Cur) Den, Fuel.Price
from
 TotOsnov
 join Fuel on Fuel.Num=TotOsnov.Product
 join Osnovan Fuel.Num=TotOsnov.Product
where ShiftTo>=:QDBeg and ShiftTo<=:QDEnd
group by Marka, Name, Price
having Sum(TotOsnov.Cur) <> 0

union


select
 Fuel.Marka, Osnovan.Name, Sum(TotOsnov.Lit) Litr, Sum(TotOsnov.Cur) Den,  0
from
 TotOsnov
 join Fuel on Fuel.Num=TotOsnov.Product
 join Osnovan Fuel.Num=TotOsnov.Product
where ShiftTo>=:QDBeg and ShiftTo<=:QDEnd
group by Marka, Name, Price
having Sum(TotOsnov.Cur) = 0


 
petvv ©   (2006-11-09 08:48) [3]

Всем респект, надо было вот так:
select Fuel.Marka, Osnovan.Name, Sum(TotOsnov.Lit) Litr,
Sum(TotOsnov.Cur) Den, Fuel.Price from TotOsnov, Fuel, Osnovan
where ShiftTo>=:QDBeg and ShiftTo<=:QDEnd
and
Fuel.Num=TotOsnov.Product
and
Osnovan.Num=TotOsnov.Osnovanye
group by Marka, Name, Price
having Sum(TotOsnov.Cur)<>0
union
select Fuel.Marka, Osnovan.Name, Sum(TotOsnov.Lit) Litr,
Sum(TotOsnov.Cur) Den, 0 from TotOsnov, Fuel, Osnovan
where ShiftTo>=:QDBeg and ShiftTo<=:QDEnd
and
Fuel.Num=TotOsnov.Product
and
Osnovan.Num=TotOsnov.Osnovanye
group by Marka, Name, Price
having Sum(TotOsnov.Cur)=0
Тема закрыта!


 
ЮЮ ©   (2006-11-09 09:29) [4]


> Всем респект, надо было вот так:

Нет, надо было как в [2]. ИМХО,
1) не следует, в Where смешивать условия объединения таблиц и условия отбора записей. Тем более, что первое горазжо шире по возможностям.
2) следует при написании sql  запроса применять форматирование, как и и при написании кода.



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
15-1167903579
bb2
2007-01-04 12:39
2007.01.28
Как сделать окно-телетайп


15-1167928848
Kolan
2007-01-04 19:40
2007.01.28
Как в VB обратится к элементу строки?


15-1168419709
DVM
2007-01-10 12:01
2007.01.28
Вопрос по использованиии лицензионной Delphi


2-1168419274
СержК
2007-01-10 11:54
2007.01.28
Как развернуть свернутое приложение поверх всех окон


11-1147040827
DevilDevil
2006-05-08 02:27
2007.01.28
JpegObj - требует obj файлы