Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Использование функций (напр. iif()) в запросах - трабл.  [new]
BobStar
Member

Откуда:
Сообщений: 3
Здравсвуйте!
Проблема.
Имеем SQL Server 2000 under Win2003Server.
Следующий запрос дает ошибку, говоря, что ТАКОЙ ФУНКЦИИ НЕ ЗНАЕТ.

SELECT dbo.tblGoods.Name, dbo.Представление2.MQty, dbo.Представление1.DQty, iif (dbo.Представление1.DQty=null, 0,dbo.Представление1.DQty)
- iif (dbo.Представление2.MQty=null, 0,dbo.Представление2.MQty) AS Ostatok
FROM dbo.Представление1 LEFT OUTER JOIN
dbo.tblGoods ON dbo.Представление1.idGood = dbo.tblGoods.idGood LEFT OUTER JOIN
dbo.Представление2 ON dbo.Представление1.idGood = dbo.Представление2.Good
GROUP BY dbo.Представление1.DQty, dbo.Представление2.MQty, dbo.tblGoods.Name

Обшарил весь хелп - такм везед говорится, что эти функции IIF NZ CCUR и многе другие - вполне нормально работают.

ПОЧЕМУ тогда у меня не работает?

Спасибо заранее?
13 фев 04, 16:33    [535560]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Обшарил весь хелп - такм везед говорится, что эти функции IIF NZ CCUR и многе другие - вполне нормально работают.


Можно уточнить, какой хелп вы обшарили на предмет этих функций. Потому что, если пошарить по реальному хелпу - BOL, то можно к своему удивлению открыть такую вешь, как CASE.
13 фев 04, 16:37    [535567]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Хотя в вашем случае поиск в BOL по ISNULL() приведет к более удивительным результатам.
13 фев 04, 16:38    [535571]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Ты видать из под Access-а :)
В T-SQL действительно нет таких функций,
а о фукциях VBA сервер ничего не знает
VBA->TSQL
IIF -> CASE
NZ -> ISNULL

PS Функции TSQL CASE и ISNULL не имеют ничего общего
с оператором CASE и функцией ISNULL VBA
Поэтому ищи их описание в BOL
13 фев 04, 16:41    [535573]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
BobStar
Member

Откуда:
Сообщений: 3
Спасибо уважаемые коллеги за ответы!

1. Я из Query Analiser
Вот кусок хелпа оттуда
WITH MEMBER [Measures].[BigSeller] AS
'IIf(Measures.[Store Sales] > 20000, "Yes", "No")'

SELECT
{[Store].[Store Name].Members} ON COLUMNS,
{[Measures].[Store Sales], [Measures].[BigSeller]} ON ROWS
FROM Sales

Значит он все-таки должен знать о сущестовани функций каких-то там.
Попробовал isnull - работает - спасибо большое. Нужная задача решена.
BOL - это что такое? сорри.

Удачи!
13 фев 04, 17:01    [535625]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Это вы в хелп по MDX (Multidimensional Expressions) для Analisys Server залезли, а сиквел TSQL понимает.

автор
BOL - это что такое? сорри.


https://www.sql.ru/faq/faq_topic.aspx?fid=142
13 фев 04, 17:05    [535636]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вот кусок хелпа оттуда
WITH MEMBER [Measures].[BigSeller] AS
'IIf(Measures.[Store Sales] > 20000, "Yes", "No")'


Вообще-то похоже на синтаксис MDX т.е. на синтаксис запросов к MS Analysis Services а не к MS SQL.
13 фев 04, 17:06    [535640]     Ответить | Цитировать Сообщить модератору
 Re: Использование функций (напр. iif()) в запросах - трабл.  [new]
BobStar
Member

Откуда:
Сообщений: 3
Да уважаемые коллеги Вы правы.
В силу своего чайниковства я залез в хелп Analiser-а.
Теперь понятно.
Сейчас скачаю свежий BOL и буду в будущем пользоваться принятой терминологий более уверенно ;-).

Спасибо БОЛЬШОЕ ВСЕМ за помощь.
13 фев 04, 17:25    [535685]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить