Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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_Sql Server 2008_Sql Server 2012 - Fatal编程技术网

Sql server 如何基于物理列名透视结果

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

我有三张桌子 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 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”。。。