【发布时间】:2020-10-05 07:02:27
【问题描述】:
我正在尝试将此数据插入临时表 当我使用第二个结果集#Temp 添加要插入到我的临时表中的片段时 我收到不正确的语法错误 有什么想法吗?
sql
-- =============================================
-- Author: <Kaven>
-- Create date: <August 2020>
-- Description: Summary Report of [spRPWipManufactureProcessLogR1]
-- Owner : RpData.dll
-- =============================================
ALTER PROCEDURE [dbo].[spRPWipManufactureProcessLogR2]
@FromDate DATE = null,
@ToDate DATE = null,
@Location NVARCHAR(15) =null, --Dropdown --CostCentre
@Operation NVARCHAR(15) = NULL, -- Dropdown --WorkCentre
@JobNumber nvarchar(15) = NULL
AS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN
--EXEC [spRPWipManufactureProcessLogR2] '20200201', '20200301'
IF @Operation = ''
BEGIN
SET @Operation = null
END
IF @JobNumber = ''
BEGIN
SET @JobNumber = NULL
END
IF OBJECT_ID(N'tempdb..#Temppp_WarehouseList') IS NOT NULL
BEGIN DROP TABLE #Temppp_WarehouseList END
SELECT StockCode
INTO #Temppp_WarehouseList
FROM CompanyA..InvMaster
DECLARE
@wh_List NVARCHAR(1000),
@wh_List2 NVARCHAR(1000)
SELECT @wh_List = STUFF((SELECT ',['+l.Warehouse+' QtyOnHand]' FROM CompanyA..InvWhControl l WHERE l.Warehouse IS NOT NULL FOR XML PATH('')),1,1,'')
SELECT @wh_List2 = STUFF((SELECT ',['+l.Warehouse+' QtyOnOrder]' FROM CompanyA..InvWhControl l WHERE l.Warehouse IS NOT NULL FOR XML PATH('')),1,1,'')
--SELECT @wh_List
--SELECT @wh_List2
SELECT ProductID,
FromDate,
ToDate,
QtyBUoM
INTO #TempBuOM
FROM Cetus.dbo.SMDemandForcastDailyHierarchy df
JOIN dbo.SMDemandSourceTypeDef st ON st.pkDFSourceTypeID = df.fkSourceType
WHERE
df.DemandSource = st.pkDFSourceTypeID
AND
df.Parent = st.pkDFSourceTypeID
AND FromDate <= GETDATE()
AND ToDate >= GETDATE()
SELECT * FROM #TempBuOM
SELECT * FROM #Temppp_WarehouseList t
INNER join
(SELECT * FROM
(SELECT Warehouse+' QtyOnHand' 'WarehouseOnHand', Warehouse+' QtyOnOrder' 'WarehouseOnOrder', QtyOnHand,QtyOnOrder,
b.CostCentre AS 'Location',
--b.WorkCentre AS [Operation],
-- arc.Job AS [Job Number],
--FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'HH:mm:ss') AS [Operation Compeleted Time],
-- CONVERT(VARCHAR, FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'yyyy/MM/dd'),100) AS [Operation Compeleted Date],
-- CONVERT(Date, CONVERT(date, arc.DTComplete))AS [Compeleted Date],
df.ProductID AS 'Product ID',
m.Description AS 'Stock Code DESCRIPTION',
arc.QtyToMake AS 'Quantity To Make',
arc.QtyManufactured 'Quantity Manufactured',
df.QtyBUoM AS 'Daily Demand',
inv.QtyOnOrder AS 'Quantity On Order',
inv.QtyOnHand AS 'Stock Levels'
INTO #TEMP -- Error comes here
FROM Cetus..WIPManufactureProcessLog s
LEFT JOIN WIP..WipMaster_Arc arc ON s.JobId = arc.Job
JOIN CompanyA..InvMaster m ON arc.StockCode = m.StockCode
JOIN CompanyA..InvWarehouse inv ON m.StockCode = inv.StockCode
JOIN CompanyA.dbo.BomOperations bo ON m.StockCode = bo.StockCode AND bo.Operation = s.Operation
JOIN CompanyA..BomWorkCentre b ON bo.WorkCentre = b.WorkCentre
JOIN [dbo].SMDemandForcastDailyHierarchy df ON m.StockCode = df.ProductID
JOIN dbo.SMDemandSourceTypeDef st ON st.pkDFSourceTypeID = df.fkSourceType
--EXEC [spRPWipManufactureProcessLogR2] '20190101', '20200201'
Where CONVERT(VARCHAR, FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'yyyy/MM/dd'),100)
BETWEEN ISNULL(@FromDate,CONVERT(VARCHAR, FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'yyyy/MM/dd'),100))
AND ISNULL(@ToDate,CONVERT(VARCHAR, FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'yyyy/MM/dd'),100))
--WHERE FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'HH:mm:ss') >= '2020-02-01'
--AND FORMAT(CAST(CAST(s.Event AS XML).value('(/OperationTrackingLog/TimeStamp)[1]', 'varchar(max)') AS DATETIME),'HH:mm:ss') <= '2020-03-01 '
AND m.WarehouseToUse <>'AA'
AND b.WorkCentre = ISNULL(@Location,b.WorkCentre )
AND b.CostCentre = ISNULL(@Operation,b.CostCentre )
AND arc.Job = ISNULL(@JobNumber,arc.Job) )p
PIVOT (
SUM(QtyOnHand) FOR WarehouseOnHand IN
([BB QtyOnHand],
[16 QtyOnHand],
[IS QtyOnHand],
[MS QtyOnHand],
[MH QtyOnHand],
[AA QtyOnHand],
[BC QtyOnHand],
[PH QtyOnHand],
[P4 QtyOnHand],
[PL QtyOnHand],
[CC QtyOnHand],
[SR QtyOnHand],
[TS QtyOnHand],
[WW QtyOnHand])) AS pvt
PIVOT
(SUM(QtyOnOrder) FOR WarehouseOnOrder IN
([BB QtyOnOrder],
[16 QtyOnOrder],
[IS QtyOnOrder],
[MS QtyOnOrder],
[MH QtyOnOrder],
[AA QtyOnOrder],
[BC QtyOnOrder],
[PH QtyOnOrder],
[P4 QtyOnOrder],
[PL QtyOnOrder],
[CC QtyOnOrder],
[SR QtyOnOrder],
[TS QtyOnOrder],
[WW QtyOnOrder])) AS pvt2 GROUP BY )
AS z on t.StockCode = z.[Product ID]
```sql```
【问题讨论】:
标签: sql-server subquery temp-tables