【发布时间】:2014-11-26 08:46:38
【问题描述】:
我正在尝试选择一个视图并将其与 SQL Server 2012 中的另一个表进行内部连接,但它显示此错误
消息 468,第 16 级,状态 9,第 18 行
无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AI”之间的排序规则冲突。
这是我的查询:
SELECT
vpr.PARTNUMBER, vpr.DESCRIPTION,
vpr.BUYER, vpr.[GL CLASS], vpr.[ABC CODE],
vpr.TODAY, vpr.DAY1, vpr.DAY2, vpr.DAY3, vpr.DAY4, vpr.DAY5,
vpr.[COO QTY],
ROUND(vpr.[QOH-MSTORE], 0) AS [QOH-MSTORE],
vpr.[QOH-COO], vpr.[QOH-SDV],
ABS(ROUND(vpr.TOPUPQTY, 0)) AS [TOPUPQTY],
(CASE
WHEN ABS(ROUND(vpr.TOPUPQTY, 0)) < vpr.[QOH-SDV] THEN ABS(ROUND(vpr.TOPUPQTY, 0))
WHEN ABS(ROUND(vpr.TOPUPQTY, 0)) >= vpr.[QOH-SDV] THEN vpr.[QOH-SDV]
END) AS [SDV TO PICK]
FROM
vw_PartsReport vpr
LEFT JOIN
(SELECT twudc.Description1
FROM tbl_WH_UserDefineCodes twudc
WHERE twudc.UserDefineCodes = 'SO'
GROUP BY twudc.Description1) AS [SOI] ON vpr.PARTNUMBER = Description1
WHERE
vpr.TOPUPQTY <= 0
有人可以告诉我我的查询有什么问题吗?谢谢
【问题讨论】:
-
您正在尝试比较两种不同排序规则类型的字符串。您需要明确声明要在 equals 操作中使用的排序规则,例如
SomeColumn = SomeOtherColumn COLLATE SQL_Latin1_General_CP1_CI_AS。如果您双击 SSMS 中的错误消息,它应该会将您带到有问题的行。 -
是的 GarethD,当我双击错误时,它会将我带到“AS [SOI] ON vpr.PARTNUMBER = Description1”。对于“vpr.PARTNUMBER”是(nvarchar,not null)和“Description1”是(nvarchar,null),那么基于此我该如何解决它?
标签: sql sql-server-2012