0
喂朋友,查询来选择不同的
我需要一个查询扔在有桌子temp_invoice比较的错误消息。
应该比较PB_Responsbility表客户领域[任务RESP#],对抗[PB-ID]字段= 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或如果[任务RESP#]未在表PB_Responsbility发现, 它应该抛出的消息,通过从选择不同[任务RESP#] excel表格。
这里所需要的输出是“不正确的[任务RESP#]: - 。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值查询。请给我解释一下,为什么具有鲜明的第二选择查询不工作?
它可能是“失败”与DISTINCT出于同样的原因是“失败”与ORDER BY,http://www.sqlmag.com /article/sql-server/multi-row-variable-assignment-and-order-by.aspx – 2010-10-11 09:25:12
+1哇,Thanku非常..解释给了我一个微笑。 – satya 2010-10-11 09:32:07