Я пытаюсь собрать две базы данных в представлении, которое будет отображать выставление счетов из обеих систем.Попытка создать поле даты для объединения двух таблиц
В одной таблице перечислены счета-фактуры по дате (то есть продажи в январе - это любой счет-фактура с январской датой), в другой таблице перечислены счета-фактуры по годам и периодам (так что продажи января - период «2017» - независимо от даты) , Поскольку вторая система позволяет публиковать счета-фактуры в течение периода, который находится за пределами этого диапазона дат периодов, я пытаюсь создать поле даты из полей года/периода с помощью case-case, чтобы показать тот же объем выставленных счетов, что и система делает.
LedgerYear +
case
when LedgerPeriod = 4 then '-10-01'
when LedgerPeriod = 5 then '-11-01'
when LedgerPeriod = 6 then '-12-01'
when LedgerPeriod = 7 then '-01-01'
when LedgerPeriod = 8 then '-02-01'
when LedgerPeriod = 9 then '-03-01'
when LedgerPeriod = 10 then '-04-01'
when LedgerPeriod = 11 then '-05-01'
when LedgerPeriod = 12 then '-06-01'
when LedgerPeriod = 1 then '-07-01'
when LedgerPeriod = 2 then '-08-01'
when LedgerPeriod = 3 then '-09-01'
end
as 'InvDate',
Я получаю следующее сообщение ..
Error converting data type varchar to numeric.
Предположительно, LedgerYear числовой и '-10-01' и т.д., VARCHARS. InvDate в другой таблице в объединении находится в формате «datetime».
Как я могу получить вывод оператора case в формате даты и времени?
Данные примера и желаемые результаты действительно полезны для объяснения проблемы. –
попробуйте выбрать CAST (CAST (ledgeryear as float) как int) – Chanukya
, какую версию SQL-сервера вы используете? –