Я использую следующий запрос, чтобы собрать некоторую информацию о каждом ProductId
- обратите внимание, что ProductId
может содержать несколько записей в таблице dbo.Sales
:
SELECT
c.ProductId,
COUNT(*) as NumberOfRecords,
(SELECT
(ISNULL(NULLIF(c.Text, ''), 'FALSE'))) as TextFieldHasData
FROM dbo.Sales c
JOIN dbo.Sources s
ON c.ProductId = s.ProductId
AND s.SourceStatusId in (1,2)
GROUP BY c.ProductId, c.Status, s.SourceStatusId, c.Text
ORDER BY c.ProductId
Мне нужно настроить часть запроса ISNULL
, и у меня возникли проблемы с синтаксисом; на самом деле мне нужно сначала проверить счет NumberofRecords
- если счет NumberofRecords
для данной записи результата больше 1, то поле TextFieldHadData
для этой записи должно просто сказать «N / A». Но если NumberofRecords
считается для данной записи результата = 1, то он должен проверить, является ли поле c.Text
пустым или пустым. Если равно NULL или пусто, в поле TextFieldHasData
будет указано «ЛОЖЬ». Если это не NULL или пусто, поле TextFieldHasData будет иметь значение «ИСТИНА».