увеличение учебной потери временно сразу после этапа тестирования

Запрос будет считать сумму транзакции дважды за 2007 год из-за того, что у вас есть две претензии, поэтому сумма транзакции будет засчитана дважды.

i.e. используемые возвращенные данные:

Customer | Transaction Year | Transaction Amount | Claim Amount
----------------------------------------------------------------
A        | 2007             | 100                | 30
A        | 2007             | 100                | 40
A        | 2008             | 80                 |
A        | 2008             | 50                 |
A        | 2009             | 210                | 110

Что-то вроде следующего, хотя и не очень красивое, должно решить проблему:

SELECT 
   t.Customer
   ,t.Year
   ,[Transaction Amount] = SUM(t.[Transaction Amount])
   ,[Claim Amount] = c.[Claim Amount]
FROM 
    Transactions t
    LEFT JOIN (
        SELECT 
            Customer
            ,Year
            ,SUM([Claim Amount])
        FROM
           Claims
        GROUP BY
           Customer, Year
    ) c ON c.Customer = t.Customer c.Year = t.Year
GROUP BY t.Customer, t.Year, c.[Claim Amount]
0
задан William Anderson 13 July 2018 в 05:41
поделиться