![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как составить SQL запрос? [D3, IB6.x]
BlackKing © (2003-11-27 11:28:00)
Такой вот запрос :
Update Material
Set Mat_Daudz =
(Select Sum(SSar_Daudz)
From Sp_Sar
Where Sp_Sar.Id_Mat = Material.Id_Mat) +
(Select Sum(SVSar_Daudz)
From SVp_Sar
Where SVp_Sar.Id_Mat = Material.Id_Mat)
Where Id_Mat = 10
Всё работает как надо, проблемы начинаются когда один из подзапросов не выдаёт никакого значения, Mat_Daudz остаётся пустым.
Как сделать, чтобы в Mat_Daudz попало значение суммы одного из подзапросов, который возвращает значение.
BlackKing (2003-11-27 12:25:00) [21]
Есть IF, но опять же, не знаю как им пользоваться в запросе. Мож он только для триггеров.
BlackKing (2003-11-27 12:22:00) [22]
в Key Words есть и CASE и WHEN. IIF не замечен. Описания по Key Words у меня нет, есть только список. А в SQL я не очень то силён. Потому и прошу помощи.
Sandman25 (2003-11-27 12:15:00) [23]
Видимо, для сase в IB другой синтаксис. iif тут есть?
BlackKing (2003-11-27 12:02:00) [24]
Так что ли? похоже нет :o(
Update Material
Set Mat_Daudz =
(Select Case When Sum(SSar_Daudz) is null then 0 Else Sum(SSar_Daudz) end
From Sp_Sar
Where Sp_Sar.Id_Mat = Material.Id_Mat) +
(Select Case When Sum(SVSar_Daudz) is null then 0 Else Sum(SSar_Daudz) end
From SVp_Sar
Where SVp_Sar.Id_Mat = Material.Id_Mat)
Where Id_Mat = 10
Error
Token unknown - ..... When
Sandman25 (2003-11-27 11:34:00) [25]
select case when field1 is null then 0 else field1 end +
case when field2 is null then 0 else field2 end
from table