【发布时间】:2021-04-13 17:05:53
【问题描述】:
我在 SQL Server 上遇到“排序规则冲突”,我正在使用下一个代码并收到该错误:
with MESF1 as (
SELECT [Error], convert(date,[Now]) as 'Date', COUNT(*) as'Day total', sum([Delta in seconds]) as [Total in seconds]
FROM [Consolidado-MESF1].[dbo].[MESF1_Data_Summary] A
Group by convert(date,[now]), [Error]
)
Select a.*, b.[ErrorDescription], (round(((cast(a.[Total in seconds] as numeric )/cast(a.[Day total] as numeric))),3))
as 'Average cycle time' ,
datepart(wk,a.[date]) as 'WWK',datepart(YYYY,a.[date]) as 'YYYY', datename(DW, a.[date]) as 'Day' from MESF1 a
inner join [Consolidado-MESF1].[dbo].[MESF1_ERROR_DESCRIPTION] b on a.error = b.ErrorNumber
Union
Select a.*, b.[Item Type Description], (round(((cast(a.[Total in seconds] as numeric )/cast(a.[Day total] as numeric))),3))
as 'Average cycle time' ,
datepart(wk,a.[date]) as 'WWK',datepart(YYYY,a.[date]) as 'YYYY', datename(DW, a.[date]) as 'Day' from MESF1 a
inner join [ProductList].[dbo].[Prodinfo] b on a.error = b.[FG OPC] collate SQL_latin1_general_cp1_ci_as
--date period YYYY-MM-DD
--where [date] between '2020-06-06' and '2020-08-06'
order by a.[Date] asc;
---------------------------------------------------------------------------------------------------
End
显示的错误是:
消息 468,第 16 级,状态 9,第 103 行 无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“Modern_Spanish_CI_AS”之间的排序规则冲突。
我已经尝试在设计菜单中从 Windows 排序规则更改为 SQL 排序规则和下一个查询:
ALTER table [dbo].[MESF1_ERROR_DESCRIPTION]
ALTER COLUMN [ErrorDescription]
VARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
感谢大家的帮助。
【问题讨论】:
-
其他连接列呢,它们的排序规则是什么?遍历所有列,您在某处不匹配
标签: sql-server collation