Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 Pivot查询花费的时间太长_Sql_Sql Server - Fatal编程技术网

SQL Server Pivot查询花费的时间太长

SQL Server Pivot查询花费的时间太长,sql,sql-server,Sql,Sql Server,我在执行此查询时遇到问题 SELECT * FROM (SELECT A.ItemNo, A.EquipmentID, A.AssetAccountCode, A.Descrip, B.Condition, B.[Year], C.Brand, C.Model, C.TechnicalSpecs, D.[Type], D.Criticallity, D.[Status], (CONVERT(VA

我在执行此查询时遇到问题

SELECT 
    * 
FROM
   (SELECT 
        A.ItemNo, A.EquipmentID, A.AssetAccountCode, A.Descrip,
        B.Condition, B.[Year], 
        C.Brand, C.Model, C.TechnicalSpecs,
        D.[Type], D.Criticallity, D.[Status],
        (CONVERT(VARCHAR(4), d.YearInstalled, 127)) AS Yearinstalled 
    FROM  
        tbl_Masterlist A 
    JOIN  
        tbl_Condition B ON A.EquipmentID = B.EquipmentID 
    JOIN  
        tbl_TechnicalSpecification C ON b.EquipmentID = c.EquipmentID    
    JOIN 
       tbl_Status D On c.EquipmentID = d.EquipmentID) src 
PIVOT 
    (MAX(CONDITION) FOR YEAR IN ([2014], [2015], [2016])) piv 
问题是输出不显示或执行时间太长(我尝试等待30分钟,但它仍在执行)

你知道为什么会这样吗?我该怎么办呢


我猜这是因为4个表的记录。每个表都有16000条记录,其中一些ID是空白的。

如果您从tbl_主列表中添加where to
(201420152016)中的where year in(201420152016)
年份列应该分为三列。我的意思是,如果您只使用2014,2015年和2016年,但如果表中的日期范围是1960年到2016年,如果将where放在内部选择上,则可能会加快查询速度。如果您从tbl_主列表中添加where to
,是否有帮助?where year in(201420152016)
year列应分为三列。我的意思是,如果数据透视列仅使用2014、2015和2016,但如果表中的日期范围为1960年至2016年,如果将where置于内部选择,则可能会加快查询速度。