Sql server 如何基于物理列名透视结果
我有三张桌子 1.主表M_主表 2.M_主控台明细表 3.实际物理表 如何通过将物理列与字段名(2)匹配以获得数据透视结果来编写一个查询,从而提供所需的输出 Id是主键 这是外键 :看看这个:Sql server 如何基于物理列名透视结果,sql-server,sql-server-2008,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2012,我有三张桌子 1.主表M_主表 2.M_主控台明细表 3.实际物理表 如何通过将物理列与字段名(2)匹配以获得数据透视结果来编写一个查询,从而提供所需的输出 Id是主键 这是外键 :看看这个: --Quick and Dirty Sample Data DECLARE @master TABLE ( id INT, tablename NVARCHAR(100) ) DECLARE @detail TABLE ( detailid INT, tableid I
--Quick and Dirty Sample Data
DECLARE @master TABLE
(
id INT,
tablename NVARCHAR(100)
)
DECLARE @detail TABLE
(
detailid INT,
tableid INT,
fieldname NVARCHAR(100),
excelmappingcolumn NVARCHAR(100)
)
INSERT INTO @master VALUES (1,N'A')
INSERT INTO @detail VALUES (1,1,N'Code',N'VirtualCode')
INSERT INTO @detail VALUES (2,1,N'Value',N'Value of Virtual Exam')
-- Getting the query
DECLARE @stmt NVARCHAR(MAX) = ''
DECLARE @columns NVARCHAR(MAX)
SELECT @columns = COALESCE(@columns + ',[','',@columns + ',[') + fieldname + '] AS [' + excelmappingcolumn + ']'
FROM @detail WHERE tableid = 1
SELECT @stmt = 'SELECT ' + @columns + ' FROM ' + tablename
FROM @master m
WHERE m.id = 1
PRINT @stmt
--Execute
EXEC sp_executesql @stmt
请将问题中的示例作为文本/代码,而不是图片,以及您到目前为止所做的工作。前两个表是如何链接在一起的?似乎您需要一些动态SQL来读取表并编写查询以对列进行别名。您的详细信息表中需要外键列“tableid”。。。