匹配来自不同表的字符串,并添加到“不在哪里”

时间:2019-07-11 11:50:15

标签: sql sql-server

我正在尝试设置一个查询,该查询将返回X标题相同的支持凭单列表,同时排除标题相同的问题凭单。

我正在努力的工作是排除已经存在问题的记录,或者在选择列表中创建一个包含真/假字符串的字段。

这些表位于同一数据库中。

例如:

请求表

+----+---------+
| Title | Count|
+----+---------+
| Test  |   5  |
| Test 2|   7  |
| Test 3|   11 |
+----+---------+

问题表

+----+--+
| Title |
+----+--+
| Test 0|
| Test 2|
+----+--+

结果表

+----+---------+
| Title | Count|
+----+---------+
| Test  |   5  |
| Test 3|   11 |
+----+---------+

我试图通过子查询将其包含在“ WHERE NOT IN”子句中,如下面的代码所示-从本质上删除存在具有相同匹配标题的问题的任何行。

SELECT 

    ad.org_name 'Account'
    ,wo.title 'Title'
    ,COUNT(wo.title) 'Count'
    ,sdo.name 'Site'
    ,MAX(dateadd(s,wo.CREATEDTIME/1000,convert(datetime,'1-1-1970'))) "Latest Logged (DateTime)" 


from

workorder wo
left join AccountSiteMapping asm on wo.SITEID = asm.SITEID
left join AccountDefinition ad on asm.ACCOUNTID = ad.ORG_ID
left join SDOrganization sdo on wo.SITEID = sdo.ORG_ID



WHERE

dateadd(s,wo.CREATEDTIME/1000,convert(datetime,'1-1-1970')) > dateadd(day, -2, getdate())
AND (wo.title, value) not in (select prob.title value from Problem)

group by 

wo.TITLE
,ad.ORG_NAME
,sdo.name

HAVING 

COUNT(*) > 5

order BY

COUNT(*) desc



尝试使用上面包含的“ WHERE AND”参数时,出现以下错误

  

Msg 4145,第15级,状态1,第22行

     

在需要条件的上下文中在','附近指定的非布尔类型的表达式。

提前谢谢! 安迪

0 个答案:

没有答案