加入执行查询 table
Join execute query to table
我有 2 tables :
和
.
然后我有这段代码,它从第一个 table 创建动态枢轴 table 并将其与第二个 table.
连接起来
DECLARE @cols AS NVARCHAR( MAX ),
@query AS NVARCHAR( MAX )
SET @cols = STUFF( ( SELECT ', ' + QUOTENAME( Nazev )
FROM Tab1
FOR XML PATH( '' ),
TYPE
).value( '.', 'NVARCHAR( MAX )' ),
1,
1,
''
)
SET @query = 'SELECT ZamestnanecID,' + @cols +
'FROM ( SELECT ZamestnanecID,
Tab1.Nazev AS Nazev2,
tab2.[castka]
FROM Tab1
JOIN Tab2 On Tab2.typ = Tab1.Id
) AS prePivot
PIVOT
(
SUM( castka )
FOR Nazev2 IN (' + @cols + ')
) p'
execute(@query)
我需要以某种方式存储已执行的查询,以便我可以通过 ZamestnanecId.It 将其与 tab3 连接起来,其中包含以下列:Jméno、Příjmení、ZaměstnanecId。
(由于图像限制,我不能post图像)
有什么办法吗?
最好将执行的查询用作 select 中的 "from" 参数,但没有必要
您无法存储结果,但可以继续使用如下所示的动态查询
DECLARE
@cols AS NVARCHAR( MAX ),
@query AS NVARCHAR( MAX )
SET @cols = STUFF( ( SELECT ', ' + QUOTENAME( Nazev )
FROM Tab1
FOR XML PATH( '' ),
TYPE
).value( '.', 'NVARCHAR( MAX )' ),
1,
1,
''
)
SET @query = 'SELECT * FROM tab3 t3 JOIN '+
'( SELECT ZamestnanecID,' + @cols +
' FROM ( SELECT ZamestnanecID,
Tab1.Nazev AS Nazev2,
tab2.[castka]
FROM Tab1
JOIN Tab2 On Tab2.typ = Tab1.Id
) AS prePivot
PIVOT
(
SUM( castka )
FOR Nazev2 IN (' + @cols + ')
) p ) t '+
' on t.ZamestnanecId=t3.ZamestnanecId'
execute(@query)
我有 2 tables :
和
然后我有这段代码,它从第一个 table 创建动态枢轴 table 并将其与第二个 table.
连接起来DECLARE @cols AS NVARCHAR( MAX ),
@query AS NVARCHAR( MAX )
SET @cols = STUFF( ( SELECT ', ' + QUOTENAME( Nazev )
FROM Tab1
FOR XML PATH( '' ),
TYPE
).value( '.', 'NVARCHAR( MAX )' ),
1,
1,
''
)
SET @query = 'SELECT ZamestnanecID,' + @cols +
'FROM ( SELECT ZamestnanecID,
Tab1.Nazev AS Nazev2,
tab2.[castka]
FROM Tab1
JOIN Tab2 On Tab2.typ = Tab1.Id
) AS prePivot
PIVOT
(
SUM( castka )
FOR Nazev2 IN (' + @cols + ')
) p'
execute(@query)
我需要以某种方式存储已执行的查询,以便我可以通过 ZamestnanecId.It 将其与 tab3 连接起来,其中包含以下列:Jméno、Příjmení、ZaměstnanecId。 (由于图像限制,我不能post图像)
有什么办法吗? 最好将执行的查询用作 select 中的 "from" 参数,但没有必要
您无法存储结果,但可以继续使用如下所示的动态查询
DECLARE
@cols AS NVARCHAR( MAX ),
@query AS NVARCHAR( MAX )
SET @cols = STUFF( ( SELECT ', ' + QUOTENAME( Nazev )
FROM Tab1
FOR XML PATH( '' ),
TYPE
).value( '.', 'NVARCHAR( MAX )' ),
1,
1,
''
)
SET @query = 'SELECT * FROM tab3 t3 JOIN '+
'( SELECT ZamestnanecID,' + @cols +
' FROM ( SELECT ZamestnanecID,
Tab1.Nazev AS Nazev2,
tab2.[castka]
FROM Tab1
JOIN Tab2 On Tab2.typ = Tab1.Id
) AS prePivot
PIVOT
(
SUM( castka )
FOR Nazev2 IN (' + @cols + ')
) p ) t '+
' on t.ZamestnanecId=t3.ZamestnanecId'
execute(@query)