Я столкнулся с этой проблемой, пытаясь запустить SQL-запрос. Невозможно определить, где происходит преобразование в «int». Может ли кто-нибудь указать мне в правильном направлении?Ошибка преобразования
SELECT TOP 100 PERCENT
a.S1 as "SegNumber",
a.S2 as "SegmentName",
a.S3 as "Description",
a.S4 as "SegmentValue"
FROM
(
SELECT 3 as "S1",
LTRIM(RTRIM(b.SUMMARY_ACCT)) + '_' + 'Accounts' as "S2",
b.ACCOUNT_DESC as "S3",
'^' + LTRIM(RTRIM(c.SUMMARY_ACCT)) + '_' + 'Accounts' as "S4"
FROM TEST.dbo.GLCHARTSUM b
inner join TEST.dbo.GLCHARTSUM c ON c.PARENT_OBJ_ID = b.SUMRY_ACCT_ID
UNION ALL
SELECT 3 as "S1",
LTRIM(RTRIM(c.SUMMARY_ACCT)) + '_' + 'Accounts' as "S2",
c.ACCOUNT_DESC as "S3",
LTRIM(RTRIM(convert(varchar(100),b.ACCOUNT))) as "S4"
FROM TEST.dbo.GLCHARTDTL b
INNER JOIN TEST.dbo.GLCHARTSUM c ON c.SUMRY_ACCT_ID = b.SUMRY_ACCT_ID
UNION ALL
SELECT 2 as "S1",
LTRIM(RTRIM(ACCT_UNIT)) + '_' + 'Unit' as "S2" ,
DESCRIPTION as "S3",
'^' + LTRIM(RTRIM(ACCT_UNIT)) + '_Unit' as "S4"
FROM TEST.dbo.GLNAMES
WHERE POSTING_FLAG ='S'
UNION ALL
SELECT 2 as "S1",
LTRIM(RTRIM(ACCT_UNIT)) + '_' + 'Unit' as "S2",
DESCRIPTION as "S3",
LTRIM(RTRIM(ACCT_UNIT)) as "S4"
FROM TEST.dbo.GLNAMES
WHERE POSTING_FLAG ='P'
UNION ALL
SELECT 3 as "S1",
MATRIX_CAT + Substring(MX_VALUE,1,5) AS "S2",
MX_VALUE as "S3",
ACCOUNT AS "S4"
FROM TEST.dbo.GLACCMXVAL b
INNER JOIN TEST.dbo.GLCHARTDTL c ON b.OBJ_ID = c.OBJ_ID
) a
WHERE 1 = 1
ORDER BY a.S2
Ошибка:
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value '^ASSETS_Accounts' to data type int.
Хорошо, что это совершенно нечитаемым беспорядок ... Я даже не буду пытаться расшифровать это. Вы должны отредактировать и выполнить повторную отправку с соответствующим форматированием SQL. Но сообщение об ошибке сообщает вам, где именно проблема. Каким типом является столбец ASSETS_Accounts в базе данных? – pmbAustin
Я предполагаю, что это как-то связано с тем, что ваш столбец S4 не является одним и тем же типом во всех ваших 'UNION ALL' ... Вам действительно нужно работать над форматированием вашего кода. – Siyual
@pmbAustin столбец ACCOUNT: pk, int, not-null) – Shaji