Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中放置具有多个填充列的where条件,而不创建视图_Sql Server - Fatal编程技术网

Sql server 在SQL Server中放置具有多个填充列的where条件,而不创建视图

Sql server 在SQL Server中放置具有多个填充列的where条件,而不创建视图,sql-server,Sql Server,我编写了一个包含多个stuff列的查询,以给出预期的结果 with cte as ( select distinct w.Work_WorkID, k.Name as "Attendees", a.WF_AttrID,a.WF_ValStr,a.WF_ValDate,a.WF_ValLong from d INNER JOIN m ON d.DataID = m.Map_MapObjID INNER JOIN

我编写了一个包含多个stuff列的查询,以给出预期的结果

with cte as 
(
    select distinct
        w.Work_WorkID, k.Name as "Attendees", a.WF_AttrID,a.WF_ValStr,a.WF_ValDate,a.WF_ValLong
    from 
         d
        INNER JOIN  m ON d.DataID = m.Map_MapObjID
        INNER JOIN  s ON m.Map_MapID = s.SubWork_MapID 
        INNER JOIN  w ON s.SubWork_WorkID = w.Work_WorkID
        INNER JOIN  a ON w.Work_WorkID = a.WF_ID 
        LEFT OUTER JOIN  k ON  k.ID = a.WF_ValInt
    where  
        d.DataID = 35269818 
        and a.WF_AttrID IN( 5,17,18,8,2,3,4,11,12,13,14,15,16)

)
select distinct 
    t2.Work_WorkID,
    stuff((select N' ; ' + Secretariat_Attendees
           from (select Work_WorkID, t1.Attendees AS Secretariat_Attendees
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 17) AS t  
           for xml path('')), 1, 2, '') + N'' Secretariat_Attendees,
    stuff((select N' ; ' + Internal_Presenter_Attendees
           from (select Work_WorkID, t1.Attendees AS Internal_Presenter_Attendees
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 18) AS t  
           for xml path('')), 1, 2, '') + N'' Internal_Presenter_Attendees,
stuff((select N' ; ' + External_Presenter_Attendees
           from (select Work_WorkID, t1.WF_ValStr AS External_Presenter_Attendees
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 8) AS t  
           for xml path('')), 1, 2, '') + N'' External_Presenter_Attendees,

(select t1.WF_ValStr AS Type_of_Committee
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 2 ) Type_of_Committee,
(select t1.WF_ValDate AS Action_Sheet_Date
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 3) Action_Sheet_Date,
(select t1.WF_ValDate AS Meeting_Date
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 4) Meeting_Date,
(select t1.WF_ValStr AS Committee_Reference_Number
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 11) Committee_Reference_Number,
(select t1.WF_ValStr AS Subject
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 12) Subject,
(select t1.WF_ValLong AS Details
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 13) Details,
(select t1.WF_ValLong AS Committee_View
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 14) Committee_View,
(select t1.WF_ValLong AS Committee_Decision
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 15) Committee_Decision,
(select t1.WF_ValLong AS Committee_Recommendation
                 from cte t1 
                 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 16) Committee_Recommendation,     

    stuff((select N' ; ' + Committee_Attendees
       from (select Work_WorkID, t1.Attendees AS Committee_Attendees
          from cte t1 where t1.Work_WorkID = t2.Work_WorkID AND t1.WF_AttrID = 5) AS t  
       for xml path('')
    ), 1, 2, '') + N'' Committee_Attendees 
from cte t2 where t2.WF_ValStr='Resources';
这是预期的输出屏幕截图。

在上面的结果中,我想通过添加where条件来过滤更多内容,如下所示

其中,委员会资源类型和委员会参考编号=70


如何修改查询以达到预期效果?

通过更改查询来达到预期效果

select w2.WF_ID,wm.Map_MapObjID, w2.WF_ValStr Type_of_Committee,stuff((select N' ; ' + cast (usid as nvarchar)
           from (select k.Name usid
                 from  w3,kuaf k 
                 where w3.WF_AttrID = 17 and w3.WF_ID=w2.WF_ID and k.ID=w3.WF_ValInt) AS t  
           for xml path('')), 1, 2, '') + N'' Secretariat_Attendees,
           stuff((select N' ; ' + cast (usid as nvarchar)
           from (select k.Name usid
                 from  w3,KUAF k  
                 where w3.WF_AttrID = 18 and w3.WF_ID=w2.WF_ID  and k.ID=w3.WF_ValInt) AS t  
           for xml path('')), 1, 2, '') + N'' Internal_Presenter_Attendees,

                   stuff((select N' ; ' + cast (usid as nvarchar)
           from (select k.Name usid
                 from  w3,KUAF k  
                 where w3.WF_AttrID = 5 and w3.WF_ID=w2.WF_ID  and k.ID=w3.WF_ValInt) AS t  
           for xml path('')), 1, 2, '') + N'' Committee_Attendees,


           stuff((select N' ; ' + + cast (usid as nvarchar)
           from (select w3.WF_ValStr usid 
                 from  w3
                 where w3.WF_AttrID = 8 and w3.WF_ID=w2.WF_ID ) AS t  
           for xml path('')), 1, 2, '') + N'' External_Presenter_Attendees,
           w3.WF_ValDate Action_Sheet_Date,
           w4.WF_ValDate Meeting_Date,
           w5.WF_ValStr Committee_Reference_Number,
           w6.WF_ValStr Subject,
           w7.WF_ValLong Details,
           w8.WF_ValLong Committee_View,
           w9.WF_ValLong Committee_Decision,
           w10.WF_ValLong Committee_Recommendation


           from  w2,  wm,  ws, w3, w4, w5, w6, w7, w8, w9, w10
where w2.WF_ID=ws.SubWork_WorkID and w2.WF_AttrID=2 and wm.Map_MapObjID=35269818 and ws.SubWork_MapID=wm.Map_MapID 
and w3.WF_ID=w2.WF_ID and w3.WF_AttrID=3
and w4.WF_ID=w2.WF_ID and w4.WF_AttrID=4
and w5.WF_ID=w2.WF_ID and w5.WF_AttrID=11
and w6.WF_ID=w2.WF_ID and w6.WF_AttrID=12
and w7.WF_ID=w2.WF_ID and w7.WF_AttrID=13
and w8.WF_ID=w2.WF_ID and w8.WF_AttrID=14
and w9.WF_ID=w2.WF_ID and w9.WF_AttrID=15
and w10.WF_ID=w2.WF_ID and w10.WF_AttrID=16
and w2.WF_ValStr='Resources'

您使用的是什么版本的SQL Server?您可以将示例输入/起始数据添加到问题中吗?如果您想在where子句中使用它们,请将
委员会类型
委员会参考号
复制/移动到
外部应用