#sql #sql-server
Вопрос:
У меня есть список номеров учетных записей и идентификаторов команд в таблице. Типы данных для каждого столбца-Номер учетной записи = varchar(16), а идентификатор команды-varchar(9). Я пытаюсь повернуть так, чтобы данные отображались по номерам учетных записей в двух командах.
Мой вопрос таков….
SELECT A,
B
FROM
(SELECT CAST(AccountID AS INT) AS AccountID,
CAST(Team AS INT) AS Team
FROM dbo.Client_Download
) AS SourceTable
Pivot
(MAX(AccountID)
For Team in ([A],[B])) As CvgPivot
Я старался сделать это как можно проще, но постоянно получаю следующую ошибку
Msg 245, Level 16, State 1, Line 18
Conversion failed when converting the varchar value 'URXQ14GBTHQJ' to data type int.
Я попытался поместить команду CAST во все варианты запроса и все равно возвращаюсь к той же ошибке.
Любая помощь была бы очень признательна.
Заранее спасибо
Комментарии:
1. Пожалуйста, предоставьте примерные данные и желаемые результаты.
2. Похоже, у вас есть либо идентификатор учетной записи, либо команда,
'URXQ14GBTHQJ'
так почему вы думаете, что можете добавить это в int? ОтложитеPIVOT
это полностью в сторону, разве вы не получаете ту же ошибку отSELECT CAST(AccountID AS INT) AS AccountID, CAST(Team AS INT) AS Team FROM dbo.Client_Download;
?3. Привет, Аарон, я не хочу вводить их в Int из-за сообщения об ошибке, которое выдает SQL. Если вы можете сказать мне, как этого избежать, я был бы вам очень признателен.
4. То, что у вас есть, на самом деле не имеет смысла. Во внутреннем выборе вы
CAST
указываете значениеTeam
для anint
, однако в полеPIVOT
вы хотитеMAX
значениеAccountID
, где значениеTeam
является'A'
или'B'
; ни'A'
то, ни другое или'B'
не являетсяint
…5.
I don't want to cast them into Int
— ну, тогда почему в вашем запросе говорится, например,CAST(Team AS INT) AS Team
? SQL Server не создавал этот код, это сделали вы.
Ответ №1:
Я не знаю, почему вы конвертируете значения в целые. Это делает то, что ты хочешь?
SELECT A, B
FROM (SELECT AccountID, Team
FROM dbo.Client_Download
) AS SourceTable
PIVOT (MAX(AccountID)
For Team in ([A],[B])) As CvgPivot