2017-07-14 17 views
0

即使檢查了表定義和列數,我仍然收到此錯誤。這絕對不是列數的問題,我認爲這是更多的問題與我聲明的類型。提供的值的列名或數量與表定義不匹配錯誤(我已檢查它並且表定義/編號相同)

///列名或提供的值的數量與表定義不匹配。 ///

任何人都可以發現我正在做的一個重大錯誤嗎?

Create TABLE #tempResults 
( 
[DateCreatedInvoiced] DATETIME, 
[Destination Country] VARCHAR (30), 
[Destination Depot] VARCHAR (30), 
MovementRef VARCHAR (50), 
[Total Chargeable UK] INT, 
[Total Chargeable OS] INT, 
[Total Chargeable] INT, 
[Total AQ] INT, 
[Total FAM Allocation] INT, 
[Total Transport Cost] INT, 
TotalAmetaColDelCost INT, 
AQDepotDepot INT, 
TotalCons int, 
[SailingDate] DATETIME, 
[TrailerNumber] VARCHAR (150), 
[Count of Cons on Movement] VARCHAR (50), 
[INVOICED/NON-INVOICED] VARCHAR (50) 
) 
INSERT INTO #tempResults 
SELECT 
Max(Cast(ME.InvoicedDate AS DATETIME)) AS [DateCreatedInvoiced], --1 
CR.DestinationCountry AS [Destination Country] , --2 
ISNULL(STUFF((SELECT DISTINCT '/' + COALESCE(cr.DestinationDepot, 'NA') FOR 
        XML PATH('') 
       ), 1, 1, ''), '') AS [Destination Depot], --3 
CASE 
    WHEN PATINDEX('%[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9]%', REPLACE(MU.Number, '-', '')) > 0 THEN STUFF(STUFF(SUBSTRING(REPLACE(MU.Number, '-', ''), PATINDEX('%[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9]%', REPLACE(MU.Number, '-', '')), 10), 3, 0, '-'), 6, 0, '-') 
    ELSE ME.MovementReference 
END AS MovementRef , --4 
CAST(SUM(CASE 
    WHEN Payable = 'UK' THEN ME.ChargeableWeight 
    ELSE 0 
END) as Decimal (18,2)) AS [Total Chargeable UK], --5 
CAST(SUM(CASE 
    WHEN Payable = 'OS' THEN ChargeableWeight 
    ELSE 0 
END) as Decimal (18,2)) AS [Total Chargeable OS], --6 
CAST(SUM(ChargeableWeight) as Decimal (18,2)) AS [Total Chargeable], --7 
CAST(SUM(AQCost) as Decimal (18,2)) AS [Total AQ], --8 
CAST(SUM(FAMAllocation) as Decimal (18,2)) AS [Total FAM Allocation], --9 
CAST(SUM(NottsHaulage + NottsHandling + NottsDistribution + ThurrockDistribution + ThurrockHandling) as Decimal (18,2)) AS [Total Transport Cost],--10 
CAST(SUM(CONVERT(DECIMAL(18,2),CASE 
          WHEN PartnerCurrency = 'GBP' THEN AmetaColDelCost 
          ELSE AmetaColDelCost/AmetaExchangeRate 
         END)) as Decimal (18,2)) AS TotalAmetaColDelCost, --11 
CAST(SUM(AQDepotDepot) as Decimal (18,2)) AS AQDepotDepot, --12 
Cast(COUNT(MCL.ConsignmentReference) as INT) AS TotalCons, --13 
MAX(MM.SailingDateTime) AS [SailingDate], --14 
MAX(MU.Number) AS [TrailerNumber], --15 
CASE 
WHEN COUNT(MCL.ConsignmentReference) < 3 THEN 'Movement has 3 or less cons' 
ELSE 'Movement has 3 or more cons' 
END AS [Count of Cons on Movement], --16 
'Invoiced' AS [INVOICED/NOT-INVOICED] --17 
+0

您的選擇查詢中沒有'FROM table_name'!而你的'create table'在MySQL中給出了'語法錯誤'。 –

+1

我也明確地將你插入到你的臨時表中的列命名爲INSET INTO #tempResults(DateCreatedInvoiced,[Destination Countr],....) – Leonidas199x

+1

sql-server我想。 – Serg

回答

0

就像一張支票嘗試做一個

SELECT 
Max(Cast(ME.InvoicedDate AS DATETIME)) AS [DateCreatedInvoiced], --1 
CR.DestinationCountry AS [Destination Country] , --2 
ISNULL(STUFF((SELECT DISTINCT '/' + COALESCE(cr.DestinationDepot, 'NA') FOR 
       XML PATH('') 
      ), 1, 1, ''), '') AS [Destination Depot], --3 
CASE 
WHEN PATINDEX('%[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9]%', REPLACE(MU.Number, '-', '')) > 0 THEN STUFF(STUFF(SUBSTRING(REPLACE(MU.Number, '-', ''), PATINDEX('%[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9]%', REPLACE(MU.Number, '-', '')), 10), 3, 0, '-'), 6, 0, '-') 
    ELSE ME.MovementReference 
END AS MovementRef , --4 
CAST(SUM(CASE 
WHEN Payable = 'UK' THEN ME.ChargeableWeight 
ELSE 0 
END) as Decimal (18,2)) AS [Total Chargeable UK], --5 
CAST(SUM(CASE 
    WHEN Payable = 'OS' THEN ChargeableWeight 
ELSE 0 
END) as Decimal (18,2)) AS [Total Chargeable OS], --6 
CAST(SUM(ChargeableWeight) as Decimal (18,2)) AS [Total Chargeable], --7 
CAST(SUM(AQCost) as Decimal (18,2)) AS [Total AQ], --8 
CAST(SUM(FAMAllocation) as Decimal (18,2)) AS [Total FAM Allocation], --9 
CAST(SUM(NottsHaulage + NottsHandling + NottsDistribution + ThurrockDistribution + ThurrockHandling) as Decimal (18,2)) AS [Total Transport Cost],--10 
CAST(SUM(CONVERT(DECIMAL(18,2),CASE 
         WHEN PartnerCurrency = 'GBP' THEN AmetaColDelCost 
         ELSE AmetaColDelCost/AmetaExchangeRate 
        END)) as Decimal (18,2)) AS TotalAmetaColDelCost, --11 
CAST(SUM(AQDepotDepot) as Decimal (18,2)) AS AQDepotDepot, --12 
Cast(COUNT(MCL.ConsignmentReference) as INT) AS TotalCons, --13 
MAX(MM.SailingDateTime) AS [SailingDate], --14 
MAX(MU.Number) AS [TrailerNumber], --15 
CASE 
WHEN COUNT(MCL.ConsignmentReference) < 3 THEN 'Movement has 3 or less cons' 
ELSE 'Movement has 3 or more cons' 
END AS [Count of Cons on Movement], --16 
'Invoiced' AS [INVOICED/NOT-INVOICED] --17 

INTO #TMPTABLE 
FROM <YOUR_TABLE> 


exec tempdb..sp_help '#TMPTABLE' 

然後做比較,你是什麼樣的表腳本爲產生哪些列的比較。

相關問題