У меняется следующая структура базы данных:SQL Query - Group and SUM of values
ID: Оплата (десятичная) | PaymentDate (DateTime) | PaymentStatus (int)
В настоящее время я могу получить группировку всех платежей с течением времени по Году и дате и получить общее количество по всему статусу платежа, используя следующий запрос;
Select
YEAR = YEAR(DueDate),
MONTH = MONTH(DueDate),
MMM = UPPER(left(DATENAME(MONTH,DueDate),3)),
Totals = sum(Payment)
from
PaymentSchedules
Where DueDate IS NOT NULL
Group by
YEAR(DueDate),
MONTH(DueDate),
DATENAME(Month,DueDate)
Order By
YEAR,
MONTH
Это дает мне результаты, которые так хороши.
То, что я хотел бы быть в состоянии сделать это добавили итоги для расколов в каждой секции. Например, если каждый платеж может быть оплачен (1) или неоплаченным (2) или просроченным (3), я хотел бы не только получить количество оплаченных/неоплаченных/просроченных, но также хотел бы получить общую стоимость неоплаченных предметов/оплаченные предметы/Просроченные предметы для каждой комбинации Год/Месяц.
Поблагодарите you..this является совершенным, и я узнал что-то новое :) –
Один дополнительный query..the Sum работает прекрасно, но когда я попытался сделать TOTAL оплаченных (то есть, сколько оплат заплачено за это время), он не работал ... предоставил все, что я сделал, это изменение SUM для COUNT .. Я предполагаю, что это неправильно? И что означает «then pay else 0» в запросе? –
Если вы изменили 'sum' на' count', это изменит значение, да. 'sum (payment)' фактически суммирует значения 'payment' для каждой обрабатываемой строки, где в качестве' count (payment) 'будет указано количество строк, в которых значение' payment' не равно null. – sstan