Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
scorpy Member Откуда: Сообщений: 12 |
Есть акцессовский запрос, использующий iif, который хотелось бы перенести в функцию SQL ServerSELECT Поле1, Поле2, Поле3, COUNT [Поле4] AS [sum], iif ([Поле5]=0, [sum]) AS [0], iif ([Поле5]=1, [sum]) AS [1] GROUP BY Поле1, Поле2, Поле3,Поле5 Подскажите пожалуйста как переписать такой запрос с использованием CASE |
16 авг 15, 23:49 [18026468] Ответить | Цитировать Сообщить модератору |
Сид Member Откуда: Москва Сообщений: 305 |
scorpy,SELECT ..., CASE WHEN [Поле5]=0 THEN [sum] END as [0], CASE WHEN [Поле5]=1 THEN [sum] END as [1] FROM ... Ждём ошибку некорректного синтаксиса, ибо так GROUP BY не пройдёт. Отвечал только касаемо IIF. А вообще 2014 версия спокойно IIF прожуёт и не подавится. Правда, должен принимать 3 аргумента, а не 2. Тут не хватает значения для false. |
17 авг 15, 00:35 [18026579] Ответить | Цитировать Сообщить модератору |
scorpy Member Откуда: Сообщений: 12 |
Сид, спасибо!! Собственно из-за Group by и лезли ошибки, а я думал что проблема с CASE. Group by вообще можно выкинуть, так даже лучше, тогда весь этот "развернутый" запрос можно будет затолкать в представление, и через него уже подсчитывать что угодно. |
17 авг 15, 01:44 [18026684] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |