powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
5 сообщений из 5, страница 1 из 1
как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
    #32017551
DennisL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При попытке запустить продцедуру получаю ошибку :
Cannot resolve collation conflict for equal to operation. не понимаю что это значит ...
вроде мне казалось что это связанно с одинаковым названием полей в таблицах участвующих в запросе, но ни использование префиксов, ни смена названий полей не помогла
Продцедура:

DECLARE @SDate datetime
DECLARE @EDate datetime

SET @SDate=Cast('2001-11-01' as datetime)
SET @EDate=Cast('2001-11-20' as datetime)

--SET NOCOUNT ON

CREATE TABLE #SPDetail(Lagr_id INT PRIMARY KEY, User_id varchar(25), FixDate datetime, AgrStatus tinyint, AgrCDate datetime, DisburseDate datetime, FinLVL money)

INSERT INTO #SPDetail

SELECT a.Lagr_id,a.User_id, a.FixDate, CASE
WHEN a.TakeOverFrom_id IS NOT NULL and a.Status=10 THEN 11
ELSE a.Status
END as AgrStatus, a.AgrCDate,
ISNULL(CASE
WHEN a.Status IN (12,13,14,15,16) THEN (SELECT MAX(c.ChDate) FROM LAgrStatusChanges c WHERE c.LAgr_id=a.LAgr_id and c.Status=a.Status)
ELSE a.DisburseDate
END,GetDate()) as DisburseDate,
ROUND(dbo.fL_GetAgrFin(a.LAgr_id)*dbo.fL_GetLBRateLVL(a.GraphCurr,@EDate),2)
as FinLVL

FROM LAgreements a

WHERE a.Status>1 and a.User_id IN (SELECT u.User_id FROM Users u WHERE u.Post='MNG')


/*
SELECT sm.SignedPrev+sm.SignedIn+sm.ActivePrev+sm.ActiveIn as SignedTotal,
sm.DisbursedPrev+sm.DisbursedIn+sm.TakeOver as DisbursedTotal,
sm.SignedIn+sm.DisbursedIn+sm.TakeOver as SignedDisbInTotal
FROM
(
*/

-- Ошибка происходит тут !
SELECT
m.name + m.surname as UserName, m.Dep,
ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus=2),0) AS Project,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus IN (5,6)),0) AS Committee,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus IN (3,4)),0) AS Refused,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus=7 and AgrCDate<@SDate),0) AS SignedPrev,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus=7 and AgrCDate>=@SDate and AgrCDate<=@EDate),0) AS SignedIn,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus=8 and AgrCDate<@SDate),0) AS ActivePrev,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus=8 and AgrCDate>=@SDate and AgrCDate<=@EDate),0) AS ActiveIn,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus IN (9,10) and AgrCDate<@SDate and DisburseDate>=@SDate and DisburseDate<=@EDate),0) AS DisbursedPrev,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus IN (9,10) and AgrCDate>=@SDate and AgrCDate<=@EDate and DisburseDate>=@SDate and DisburseDate<=@EDate),0) AS DisbursedIn,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus = 11 and DisburseDate>=@SDate and DisburseDate<=@EDate),0) AS TakeOver,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus = 13 and DisburseDate>=@SDate and DisburseDate<=@EDate),0) AS Stopped,

ISNULL((SELECT SUM(d.FinLVL) FROM #SPDetail d
WHERE d.User_id=m.user_id and d.AgrStatus IN (12,14,15,16) and DisburseDate>=@SDate and DisburseDate<=@EDate),0) AS Ended
FROM Users m
WHERE m.Post='MNG' and m.Status>0
--) as sm
ORDER BY m.Dep

-- Такой запрос выполняеться без проблем
--SELECT * FROM #SPDetail

DROP TABLE #SPDetail


P.S. Использую MS SQL 2000
...
Рейтинг: 0 / 0
как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
    #32017564
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие collation-ы у поля User_id в #SPDetail и Users ?

Посмотрите в BOL - Transact SQL Reference - Data Types - Collation Precednce не такая же у вас ситуация, как там описано.
...
Рейтинг: 0 / 0
как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
    #32017583
DennisL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего у меня именно эта проблемма ...
База была востановленна из BackUp сделанного на другом серевере к тому-же 7-ой версии,
и теперь collation сервера и базы данных отличаеться ...
А как узнать какой collation установлен для конкретного поля таблицы ?
...
Рейтинг: 0 / 0
как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
    #32017589
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как - войти в EM в Desgin нужной таблицы, выбрать нужный столбец и посмотреть внизу какой у него Collation
)
...
Рейтинг: 0 / 0
как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
    #32017591
Gloey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '....' and column_name = '...'

По идеии ваc должны интересовать столбцы, имена которых начинаются с COLLATION_ (а может и не только они)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как понимать ошибку: Cannot resolve collation conflict for equal to operation. ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]