我有以下查询:
SELECT DISTINCT(po.SONumber) AS [Sales Order No_],po.PONumber AS PoNo,ph.[Buy-from Vendor No_] AS VendorNo,ph.[Pay-to Name],ph.[Document Date],'Ship-to Name' = CASE WHEN sh.[Ship-to Name] > '' THEN sh.[Ship-to Name] ELSE sih.[Ship-to Name] END,'Ship-to Post Code' = CASE WHEN sh.[Ship-to Post Code] > '' THEN sh.[Ship-to Post Code] ELSE sih.[Ship-to Post Code] END,sh.DeliveryPhoneNo AS [Delivery Phone No],'CustomerPriceGroup' = CASE WHEN sh.[Customer Price Group] > '' THEN sh.[Customer Price Group] ELSE sih.[Customer Price Group] END,'DeliveryComment' = CASE WHEN sh.[Delivery Comment] > '' THEN sh.[Delivery Comment] ELSE sih.[Delivery Comment] END,'GiftMessage' = CASE WHEN sh.[GiftMessage] > '' THEN sh.[GiftMessage] ELSE sih.[GiftMessage] END,si.Shipped,si.ShippedDate,si.CourierID FROM NavisionMeta.dbo.PoToSo po,[Crocus Live$Purchase Header] ph,[Crocus Live$Purchase Line] pl,[Crocus Live$Sales Header] sh,[Crocus Live$Sales Invoice Header] sih,NavisionMeta.dbo.SupplierInput si WHERE po.PONumber = ph.[No_] AND ph.[No_] = pl.[Document No_] AND po.SONumber *= sh.No_ AND po.SONumber *= sih.[Order No_] AND po.PONumber *= si.PONo AND ph.[Document Date] BETWEEN '01-01-10' AND '31-01-10' ORDER BY po.PONumber DESC
当它执行时,我得到以下错误:
Cannot resolve the collation conflict
between
“sql_Latin1_General_Pref_CP1_CI_AS”
and “Latin1_General_CI_AS” in the
equal to operation.
NavisionMeta数据库的归类是sql_Latin1_General_Pref_CP1_CI_AS
我可以做些什么来解决这个问题?
解决方法
我认为你真的应该让你所有的列都有相同的归类.我使用这个工具的数据库,我需要将所有varchar列设置为相同的排序规则.
http://www.codeproject.com/KB/database/ChangeCollation.aspx
http://www.codeproject.com/KB/database/ChangeCollation.aspx