Sql 提供的值的列名或数目与表定义错误不匹配(我已检查过,表定义/数目相同)

Sql 提供的值的列名或数目与表定义错误不匹配(我已检查过,表定义/数目相同),sql,sql-server,Sql,Sql Server,即使我已经检查了表定义和列数,我仍然会收到这个错误。这绝对不是列数的问题,我认为更多的是我声明的类型的问题 ///提供的值的列名或数目与表定义不匹配/// 有人能发现我犯的一个重大错误吗 Create TABLE #tempResults ( [DateCreatedInvoiced] DATETIME, [Destination Country] VARCHAR (30), [Destination Depot] VARCHAR (30), MovementRef VARCHA

即使我已经检查了表定义和列数,我仍然会收到这个错误。这绝对不是列数的问题,我认为更多的是我声明的类型的问题

///提供的值的列名或数目与表定义不匹配///

有人能发现我犯的一个重大错误吗

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

就像检查一样,试着做一个检查

 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'

然后将生成的列与为表编写脚本的列进行比较。

select查询中没有FROM table_名称?!!您的创建表在MySQL中出现语法错误。我还想在tempResults DateCreatedInvoiced、[Destination Countr]、…..sql server中显式命名临时表中插入的列。@Leonidas199x谢谢您的建议!你的意思是我应该为插入到中的列提供别名吗?@Diana不,不是别名,我的意思是,你没有明确说明数据的去向,你只是说插入到中,然后提供数据。