Копирование данных SQL Server в Excel - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть запрос, который работает в SQL Server, но не работает в Excel.Я предполагаю, что это как-то связано с частью создания таблицы, но я не совсем знаю.

Есть что-то простое, что мне нужно сделать?

Спасибо

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 голосов
/ 30 апреля 2019

Как предложил 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'
                    )
                )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...