将SQL Server数据复制到Excel

时间:2019-04-30 14:40:29

标签: sql-server excel

我有一个在SQL Server中可用的查询,但在Excel中不起作用。我以为它与create table部分有关,但我真的不知道。

我需要做些简单的事情吗?

谢谢

SELECT DISTINCT
    dev.[ExternalPointofDeliverynumber],
    dev.InstallDate
INTO ##TEMPS2
FROM [DOCDPT].[result].[Tbl_Device] AS DEV
WHERE GETDATE() < TimeSliceTo
  AND EquipmentType LIKE ('%S2%') 

SELECT DISTINCT 
    temp.ExternalPointofDeliverynumber,
    temp.installdate,  
    Wo.WorkOrderServiceProduct,
    wo.WOMainUserStatus,
    wo.WorkOrderReasonCategory
FROM
    ##TEMPS2 AS temp
LEFT JOIN
    [DOCDPT].[result].[Tbl_Work_Summary] AS WO ON temp.ExternalPointofDeliverynumber = wo.ExternalPointOfDeliveryNumber 
                                               AND WorkOrderActualVisitDate > '2018-06-01'
                                               AND ((wo.WorkOrderServiceProduct IN ('WARM', 'SMEXCHANGE', 'SMINSTALL') AND WOMainUserStatus = 'COMP')
                                                    OR (wo.WorkOrderServiceProduct IN ('WARM', 'SMEXCHANGE', 'SMINSTALL') AND  WOMainUserStatus = 'PCOM' and WorkOrderReasonCategory ='COMP'))

DROP TABLE ##TEMPS2

1 个答案:

答案 0 :(得分:0)

按照BishNaboB的建议,将##Temp替换为CTE。我将此代码编码为“盲人”,因此您可能需要对其进行一些调整:

;With cte_temp
As
(
Select Distinct
        DEV.ExternalPointofDeliverynumber
        , DEV.InstallDate
    From DOCDPT.result.Tbl_Device As DEV
    Where
        GetDate() < TimeSliceTo
    And EquipmentType Like ('%S2%')
)


Select Distinct
        temp.ExternalPointofDeliverynumber
        , temp.installdate
        , WO.WorkOrderServiceProduct
        , WO.WOMainUserStatus
        , WO.WorkOrderReasonCategory
    From cte_temp As temp
        Left Join DOCDPT.result.Tbl_Work_Summary As WO
            On temp.ExternalPointofDeliverynumber = WO.ExternalPointOfDeliveryNumber
            And WorkOrderActualVisitDate > '2018-06-01'
            And (
                    (
                        WO.WorkOrderServiceProduct In (
                                                        'WARM', 'SMEXCHANGE', 'SMINSTALL'
                                                    )
                And     WOMainUserStatus = 'COMP'
                    )
            Or      (
                        WO.WorkOrderServiceProduct In (
                                                        'WARM', 'SMEXCHANGE', 'SMINSTALL'
                                                    )
                And     WOMainUserStatus = 'PCOM'
                And     WorkOrderReasonCategory = 'COMP'
                    )
                )