Это кредиты, которые «созрели». Мне нужен счет для кредитов, которые наступают через 25 дней после даты погашения, 45 дней и остальные. Мне нужно назначить метку для каждого, чтобы я мог создать диаграмму iDashboard.
Я использую подзапрос, но считаю, что нужные мне данные находятся в ОДНОЙ таблице.
----------код-------------------
Select z.Status, Count(z.Status)
From (Select a.Account, a.MaturityDate
Case
When datediff(dd, getdate(),[MaturityDate]) between -44 and -25 Then 'Yellow - 25 Days'
When datediff(dd, getdate(),[MaturityDate]) <= -45 Then 'RED - 45 Days'
Else 'All Good'
End As Status
From (Select * From LNSLoan a ))
Group by z.Status
z.Status Count
Yellow - 25 Days 128
RED - 45 Days 56
Rest of data 1138
Почему у вас From (Select * From LNSLoan a ))
вместо From LNSLoan a )
?
Я изменил код, как было предложено, теперь я получаю это сообщение об ошибке. Сообщение 156, уровень 15, состояние 1, строка 6 Неверный синтаксис рядом с ключевым словом «Дело».
Я новичок в этом, порекомендуете ли вы книгу или сайт, которые могут мне помочь?
Кажется, вы хотите что-то вроде этого:
select v.status, count(*)
from LNSLoan l cross apply
(values (case when datediff(day, getdate(), l.MaturityDate) between -44 and -25
then 'Yellow - 25 Days'
when datediff(day, getdate(), l.MaturityDate) <= -45
then 'RED - 45 Days'
else 'All Good'
end)
) v(status)
group by v.status;
Хм, для перекрестного применения скалярного выражения я обычно использую cross apply( select some_expr)
вместо cross apply(values(some_expr))
. Есть ли какая-то функциональная разница или только в предпочтениях по написанию?
@ДжорджМеноутис. . . Я нахожу values()
более удобным.
Превосходно. Мне нужно прочитать о Cross Apply, какой чистый способ делать вещи. Большое спасибо.
@CesarTerriquez . . . Технически CROSS APPLY
реализует «боковые соединения». Они очень мощные и во многих отношениях являются расширением коррелированных подзапросов, но коррелированных подзапросов, которые могут возвращать несколько столбцов и несколько строк.
Какой у Вас вопрос? Похоже, ваш запрос делает то, что вам нужно.