обновление транзакций с предварительно агрегированными данными - PullRequest
0 голосов
/ 28 марта 2019

У меня есть таблица транзакций. Мне нужно обновить таблицу предварительно агрегированным значением из другой таблицы, а затем свернуть их до различных уровней детализации.

Однако окончательный вывод неверен. Надеясь, что кто-то здесь может помочь мне понять, как это сделать.

Table A:

 TransID   BankName   Location   Region  SaleType  MonthlyPayment Weight

   1        BOA        Boston     East    F          3000           3
   2        Mellon     Pittsburgh East    C          1000           3
   3        BOA        Boston     East    C          2000           2
   4        BOA        Boston     East               1000           2


 Table B

  BanKname   Location      Region   Sales
  BOA         Boston        East     500
  Mellon      Pittsburgh    East     1000


  Desired Output structure

  BankName    Location   Region   SaleType  AvgSales  AvgMonthlyPayment

Проблема заключается в том, что при обновлении и выполнении средневзвешенного значения каждая из бостонских транзакций получает 500 продаж. После добавления общий объем продаж должен составить 1500, но теперь он равен 2500.

Если я обновлю Таблицу A значением Sales из Таблицы B, продажи будут повторяться для каждого типа продажи - таким образом, это сбрасывает окончательные средние продажи.

  update is this: (Added new column sales in A)

    update a
    set a.sales = b.sales
    from tableA a join tableB b on a.bankname=b.bankname and 
    a.location=b.location and a.region = b.region


    weighted average from A is calculated like this:

     select bankname,location,region,saletype, 
     sum(case when sales is not null then sales*weight else 0 
     end)/sum(weight) as avgsales
     , sum(case when monthlypayment is not null then monthlypayment*weight 
     else 0 end)/sum(weight) as avgmonthlyp
     from tableA
     group by bankname,location,region,saletype

Для каждого типа продажи продажи обновляются с учетом стоимости, увеличивая итоговое значение на эту сумму.

Как я могу обновить продажи, чтобы BOA получал только 500, а Меллон только 1000, а общее количество продаж составляло 1500?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...