Не может решить конфликт сопоставления между «SQL_Latin1_General_Pref_CP1_CI_AS» и «Latin1_General_CI_AS» в равном операции

У меня есть следующий вопрос:

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

Когда это выполняет, я получаю следующую ошибку:

Не может решить конфликт сопоставления между «SQL_Latin1_General_Pref_CP1_CI_AS» и «Latin1_General_CI_AS» в равном операции.

Сопоставление базы данных NavisionMeta - SQL_Latin1_General_Pref_CP1_CI_AS

Что я могу сделать, чтобы зафиксировать это??

15
задан pavium 12 January 2010 в 10:33
поделиться

4 ответа

Я думаю, что вы действительно должны сделать все, что вы столбцы имеют одинаковое сопоставление. Я использовал этот инструмент для DB, мне нужно было установить все колонки Varchar к тому же сопоставлению. http://www.codeproject.com/kb/database/changeColation.aspx

3
ответ дан 1 December 2019 в 01:05
поделиться

Согласно статье URL Expressing В приложениях Google помогают, пересылая свой обнаженный домен на домен www - лучший способ обрабатывать его.

, а затем вы оставляете запись CNAME для домена www, чтобы указать на ghs.google.com, как вы уже сделали.

-121--3853822--

Солдировка может быть указана на столбце, поэтому один или несколько ваших столбцов * CHAR-типа будут иметь другое сопоставление к столбцу, с которой вы сравниваете. Используйте
A = B Collate SQL_LATIN1_GENERAL_PREF_CP1_AS
или
A = B Collate Latin1_general_ci_as
, как предложено Treaschf.
Для максимальной эффективности выберите сопоставление колонны из таблицы, по вашему мнению, будет иметь наибольшее количество строк. Это означает, что меньше ценностей будет иметь их сопоставление при сравнении.

7
ответ дан 1 December 2019 в 01:05
поделиться

Если A и B двух столбцов, которые вы сравниваете, и A является сопоставлением SQL_LATIN1_GENERAL_PREF_CP1_AS и B с Другое, вы можете сказать

 ... 
 WHERE a = b COLLATE SQL_Latin1_General_Pref_CP1_AS

Это преобразует B до указанного сопоставления, а затем сравнивает его с помощью.

25
ответ дан 1 December 2019 в 01:05
поделиться

В каждом случае, когда вы сравниваете значение VARCHA от ваших данных на навигации с вашими ненасимальными данными, вы должны заставить сопоставление с использованием предложения Collate .

Например, в вашем примере: -

...
po.SONumber *= sih.[Order No_] COLLATE SQL_Latin1_General_Pref_CP1_CI_AS AND 
...
4
ответ дан 1 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: