2014-05-20 29 views
0

- 編輯包含完整查詢,錯誤正確。將結果落實到#Temp

我想在可以加入的現有查詢中創建臨時表。 我收到以下錯誤。

(746739 row(s) affected) 
Msg 208, Level 16, State 1, Line 34 
Invalid object name 'POD_TB'. 

這是我與臨時表的第一次嘗試,我知道我失去了一些東西簡單。 預先感謝您。

DROP TABLE #POD_TB 
CREATE TABLE #POD_TB 
(
Delivery varchar(60) 
    ,Shipment_Number varchar(60) 
    ,Shipping_Carrier varchar(60) 
    ,Tracking_Number varchar(60) 
    ,Ship_Method varchar(60) 
    ,POD_Signature varchar(60) 
    ,POD_Date varchar(60) 
    ,POD_Time varchar(60) 
) 

INSERT INTO #POD_TB 
SELECT SHIPMENTS.Delivery 
    ,SHIPMENTS.Shipment_Number 
    ,PROOF_OF_DELIVERY.Shipping_Carrier 
    ,PROOF_OF_DELIVERY.Tracking_Number 
    ,PROOF_OF_DELIVERY.Ship_Method 
    ,PROOF_OF_DELIVERY.POD_Signature 
    ,PROOF_OF_DELIVERY.POD_Date 
    ,PROOF_OF_DELIVERY.POD_Time 
FROM 
SHIPMENTS 
LEFT JOIN PROOF_OF_DELIVERY 
ON SHIPMENTS.Shipment_Number = PROOF_OF_DELIVERY.Delivery_Or_Shipment 
WHERE Load_Date IN 
(
SELECT MAX(Load_Date) 
FROM PROOF_OF_DELIVERY 
GROUP BY Delivery_Or_Shipment 
) 


SELECT DISTINCT GI.GOODS_ISSUE_DOCUMENT_ID 
,GI.SALES_ORDER_ID 
,GI.SALES_ORDER_LINE_ID 
,GI.SALES_ORDER_TYPE_CODE 
,GI.DELIVERY_HEADER_ID 
,GI.DELIVERY_ITEM_ID 
,FD.FISCAL_MONTH_CODE 
,GI.MATERIAL_NUMBER 
,GI.SHIPPED_QTY 
,SO.ORDERER_NAME 
,SO.CREATED_BY 
,SO.CONTACT_PERSON 
,GI.SOLD_TO_CUSTOMER_ID 
,GI.SHIP_TO_CUSTOMER_ID 
,GI.ORIGINAL_COMMIT_DATE 
,GI.SHIP_FROM_PLANT_ID 
,GI.ACTUAL_PGI_DATE 
,GI.CUSTOMER_PO_NUMBER 
,GI.SHIPPED_PRICE 
,(GI.SHIPPED_PRICE * GI.SHIPPED_QTY) AS EXT_SHIPPED_PRICE 
,GI.SALES_ORGANIZATION_CODE 
,GI.DELIVERY_NOTE_PRIORITY_CODE 
,FD.FISCAL_WEEK_CODE 
,DV.DIVISION_CODE 
,DN.Delivery_Item_Creation_Date 
,SOLD.CUSTOMER_SHORT_NAME AS SOLD_TO_CUSTOMER_SHORT_NAME 
,SHIP.CUSTOMER_SHORT_NAME AS SHIP_TO_CUSTOMER_SHORT_NAME 
,SHIP.Customer_Site_Name 
,SHIP.REGION_NAME 
,MATD.MATERIAL_DESCRIPTION 
,MATD.STANDARD_COST 
,(MATD.STANDARD_COST * GI.SHIPPED_QTY) AS EXT_STANDARD_COST 
,MATD.GLOBAL_EVENT 
,PLT.LEAD_TIME_FOR_ORIGINAL_COMMIT 
,OPRM.BASE_PART_CODE 
,MATD.PRODUCT_INSP_MEMO 
,MATD.MATERIAL_PRICING_GROUP_CODE 
,MATD.MATERIAL_STATUS AS MMPP 
,PIM.PIM_PBG_GROUPING 
,SOL.SHIPPING_CONDITION 
,SVO.SERVICE_ORDER_NUM 
,SO.CREATION_TIME AS SO_CREATION_TIME 
,SOL.CREATED_TIME AS SO_LINE_CREATED_TIME 
,SOL.SHIPPING_POINT 
,SDT.SALES_DOCUMENT_TYPE_CODE AS SVO_DOCUMENT_TYPE_CODE 
,EQU.EQUIPMENT_NUM 
,EQU.SERIAL_NUMBER 
,EQU.CUSTOMERTOOLID 
,POD.Shipment_Number 
,POD.Shipping_Carrier 
,POD.Tracking_Number 
,POD.Ship_Method 
,POD.POD_Signature 
,POD.POD_Date 
,POD.POD_Time 
,DATEDIFF(dd,SO.CREATION_TIME,GI.ACTUAL_PGI_DATE) AS Cycle_Time_to_PGI_Days 
,DATEDIFF(hh,SO.CREATION_TIME,GI.ACTUAL_PGI_DATE) AS Cycle_Time_to_PGI_Hours  

FROM GOODS_ISSUE AS GI 
INNER JOIN dbo.Delivery_Notes AS DN 
ON GI.DELIVERY_HEADER_ID = DN.DELIVERY_HEADER_CODE AND GI.DELIVERY_ITEM_ID = DN.DELIVERY_ITEM_CODE 
INNER JOIN dbo.Customer_View AS SOLD 
ON GI.SOLD_TO_CUSTOMER_ID = SOLD.CUSTOMER_CODE 
INNER JOIN dbo.Customer_View AS SHIP 
ON GI.SOLD_TO_CUSTOMER_ID = SHIP.CUSTOMER_CODE 
INNER JOIN dbo.MATERIAL_DETAILS AS MATD 
ON GI.MATERIAL_NUMBER = MATD.MATERIAL_NUMBER 
INNER JOIN dbo.OPR_MATERIAL_DIM AS OPRM 
ON OPRM.MATERIAL_NUMBER = GI.MATERIAL_NUMBER 
LEFT JOIN dbo.SM_DATE_DIM AS FD 
ON CAST(FD.CALENDAR_DAY AS DATE) = CAST(GI.ACTUAL_PGI_DATE AS DATE) 
LEFT JOIN dbo.DIM_PUBLISHED_LEAD_TIME_COMMIT AS PLT 
ON PLT.MATERIAL_NUMBER = OPRM.BASE_PART_CODE 
LEFT JOIN dbo.PRODUCT_INSP_MEMO_DIM AS PIM 
ON PIM.PRODUCT_INSP_MEMO = MATD.PRODUCT_INSP_MEMO 
INNER JOIN dbo.SM_SALES_ORDER_LINE_FACT AS SOL 
ON SOL.SALES_ORDER_CODE = GI.SALES_ORDER_ID AND SOL.SALES_ORDER_LINE_CODE = GI.SALES_ORDER_LINE_ID 
INNER JOIN dbo.SM_SALES_ORDER_FACT AS SO 
ON SO.SALES_ORDER_CODE = GI.SALES_ORDER_ID 
INNER JOIN dbo.SM_DIVISION_DIM AS DV 
ON SO.DIVISION_SID = DV.DIVISION_SID 
LEFT JOIN dbo.SERVICE_ORDER_FACT AS SVO 
ON SVO.SERVICE_ORDER_NUM = SO.SERVICE_ORDER_NUMBER 
LEFT JOIN dbo.SM_SALES_DOCUMENT_TYPE_DIM AS SDT 
ON SDT.SALES_DOCUMENT_TYPE_SID = SVO.SALES_DOCUMENT_TYPE_SID 
LEFT JOIN dbo.SM_EQUIPMENT_DIM AS EQU 
ON EQU.EQUIPMENT_SID = SVO.EQUIPMENT_SID 
LEFT JOIN #POD_TB AS POD 
ON POD.Delivery = GI.DELIVERY_HEADER_ID 


WHERE GI.ACTUAL_PGI_DATE > GETDATE()-32 
AND GI.SOLD_TO_CUSTOMER_ID IN (0010000252,0010000898,0010001121,0010001409,0010001842,0010001852,0010001879,0010001977,0010001978,0010002021,0010002202,0010002227,0010002982,0010003118,0010003176,0010003294,0010005492,0010006904,0010007048,0010007080,0010010381,0010010572,0010010905,0010011999,0010012014,0010012048,0010012571,0010013124,0010013711,0010013713,0010013824,0010014180,0010014188,0010014333,0010015059,0010015313,0010015414,0010015541,0010015544,0010015550) 
+2

聽起來像你加入'POD_TB',但應加入'#POD_TB'。很難說沒有看到你的查詢的其餘部分。 – sgeddes

回答

1

有趣的是你的錯誤是:)

我猜你從臨時表查詢時只是忘哈希(#)的確切線切開查詢關:

SELECT DISTINCT GI.GOODS_ISSUE_DOCUMENT_ID 
... 
FROM #POD_TB // <-- notice the # 
... 

此外,臨時表可能沒有必要 - 如果你能加入到「TEMP」查詢作爲子查詢您可能會得到更好的性能(假設你不;噸需要後續查詢結果)。