繁体   English   中英

sql查询,用于基于另一个表显示基于id的表的所有行

[英]sql query for showing all rows of a table based on id with respect to another table

我有两张桌子。

  • 表格:时间表( SID,ORID

  • 表格:ORC( ORID,ORNAME

我想显示所有ORNAME是否分配给特定的SID。

预期产量:

   SID   OR1 OR2 OR3 OR4
    1     1             
    2             3
    3         2

以上, SID 1包含ORID = 1, SID 2包含ORID = 3, SID 3包含ORID = 2。

您需要一个动态支点,该支点支持ORNAME任意数量的可能值:

DECLARE @cols VARCHAR(1000) = STUFF(
(
SELECT  ',['+ORNAME+']'
FROM    ORC
FOR XML PATH('')
), 1, 1, '')

DECLARE @sql VARCHAR(3000) =
'
SELECT  pvt.SID,
        '+@cols+'
FROM    Schedule a
LEFT JOIN   
        ORC b ON a.ORID = b.ORID
PIVOT   (
    MAX(b.ORID) FOR b.ORNAME IN ('+@cols+')
) pvt
ORDER BY pvt.SID'

EXEC(@sql)

这是一个SQL小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM