2015-07-22 5 views
0

Так вот что я имею.
Имейте функцию, которая возвращает исключения кредита. Поэтому, если у кого-то есть недостающий документ, это исключение или требуемая подпись, это исключение и т. Д. Проблема в том, что ВСЕ информация, возвращаемая этой функцией, содержит всю информацию для кредита. Включая сумму. Итак, если есть 6 исключений по одному кредиту, а кредит - 1000, то общая сумма за исключением дает вам 6000, потому что 1000 хранится в каждой записи. Итак, вот аналогичный набор записей, которые я возвращаю.Группировка нескольких уровней в запросе

poolDesc| loanNumber| Exception | Amount 
Consumer| 123  | Missing Sig| 100 
Consumer| 123  | Missing Doc| 100 
Consumer| 123  | Late Pymt | 100 
Estate | 456  | Address Ent| 2000 
Estate | 456  | Missing Doc| 2000 
Estate | 789  | Missing Sig| 1000 
Consumer| 345  | Missing Sig| 500 

Я ищу из этого отбора:

POOL  CountExceptions LoanAmount 
Consumer 4    600 
Estate 3    3000 

Там должен быть способ сделать это, и его собираются отчета SSRS, если это помогает.
Благодаря

ответ

0
SELECT poolDesc Pool, 
     SUM(CountExceptions) CountExceptions, 
     SUM(LoanAmount) LoanAmount 
FROM (
    SELECT 
     poolDesc , 
     COUNT(*) CountExceptions, 
     SUM(Amount) OVER (PARTITION BY poolDesc, loanNumber) LoanAmount 
    FROM 
     loanExceptions 
    GROUP BY poolDesc, loanNumber, Amount 
) a 
GROUP BY poolDesc 

полный тестовый скрипт

create table loanExceptions (
    poolDesc varchar(50), 
    loanNumber int, 
    Exception varchar(50), 
    Amount float) 

insert into loanExceptions values 
('Consumer',123,'Missing Sig',100), 
('Consumer',123,'Missing Doc',100), 
('Consumer',123,'Late Pymt',100), 
('Estate',456,'Address Ent',2000), 
('Estate',456,'Missing Doc',2000), 
('Estate',789,'Missing Sig',1000), 
('Consumer',345,'Missing Sig',500) 

SELECT poolDesc Pool, 
     SUM(CountExceptions) CountExceptions, 
     SUM(LoanAmount) LoanAmount 
FROM (
    SELECT 
     poolDesc , 
     COUNT(*) CountExceptions, 
     SUM(Amount) OVER (PARTITION BY poolDesc, loanNumber) LoanAmount 
    FROM 
     loanExceptions 
    GROUP BY poolDesc, loanNumber, Amount 
) a 
GROUP BY poolDesc 

DROP TABLE loanExceptions 
+0

скрипт работает ли любит некоторые сталкер мой или нет (Бламу) – JamieD77

+0

Вы правильны. Этот скрипт работал очень хорошо для моих нужд. Большое спасибо. – 10thTiger

Смежные вопросы