Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как составить SQL запрос? [D3, IB6.x]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо