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不,不是别名,我的意思是,你没有明确说明数据的去向,你只是说插入到中,然后提供数据。