Hallo Friends,
Мне нужен запрос, чтобы выдать сообщение об ошибке при сравнении с таблицей temp_invoice.
Должно сравниваться поле [Task resp #],для поля [PB-ID] в таблице PB_Responsbility для клиента = 3D
формат temp_invoice
Concession Number [Task resp#]
TH-123 12345
TH-014 98065
TH-123 41027
TH-567 12345
TH-111 99765
TH-567 41027
TH-228 73095
TH-001 09129
TH-779 41027
TH-333 01029
TH-722 03489
Это должно проверить таблицу базы данных, для которой клиент3D.
TABLE PB_Responsbility
[PB-ID] Customer
09129 3D
98065 AB
12345 DC
41027 ZH
99765 3D
73095 UZ
Если клиент не является 3D ИЛИ, если [Task resp #] не найден в таблице PB_Responsbility, он должен выдать сообщение, выбрав отдельный [Taskресп #] из листа Excel.
Здесь необходим вывод "Неверно [Задача соответственно]: - 12345,98065,41027,73095,01029,03489.
Я написалзапрос так,
DECLARE @pb_id_msg VARCHAR(MAX)
SET @pb_id_msg = ''
SELECT @pb_id_msg = @pb_id_msg + ' ,'
+ CONVERT(VARCHAR(10),[Task resp#]) FROM temp_invoice WHERE [Task resp#] NOT IN
(SELECT [PB-ID] FROM PB_Responsbility WHERE Customer = '3D')
GROUP BY CONVERT(VARCHAR(10),[Task resp#]).
Это производит результат как требуется. Но если я изменяю запрос с DISTINCT
SELECT DISTINCT @pb_id_msg = @pb_id_msg + ' ,'
+ CONVERT(VARCHAR(10),[Task resp#]) FROM temp_invoice WHERE [Task resp#] NOT IN
(SELECT [PB-ID] FROM PB_Responsbility WHERE Customer = '3D')
Это приводит только к 1 значению. Пожалуйста, объясните мне, почемувторой запрос на выборку с отчетливым не работает ??