2017-07-14 12 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' 

をやってみてください。そして、あなたがテーブルのスクリプトが何であるかと比較して生成されたものを列の比較を行います。

関連する問題