Сумма по группам между 2 таблицами - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь суммировать по группам между 2 таблицами.По сути, я пытаюсь показать только таблицу «Count» с каждым SUM () из группы «MoneyMovements» таблицы «Bank_code».Это возможно?.Я попытался с левым соединением (включая «MoneyMovements» в «Count»).но я не понимаю, как отделить сумму ... Любое предложение ?.Я использую ACCESS 2007 в VB.NET

Table 'Count'
+----+--------------+
|Code|Bank          |
+----+--------------+
|1   |MACRO         |
+----+--------------+
|2   |Santender Rio |
+----+--------------+
|3   |Galicia       |
+----+--------------+

Table 'MoneyMovements'

+-----+--------------+
|Money|Bank_code     |
+-----+--------------+
|200  |1             |
+-----+--------------+
|300  |1             |
+-----+--------------+
|0    |2             |
+-----+--------------+
|500  |3             |
+-----+--------------+
|100  |3             |
+-----+--------------+

Response i Want:
+-----+--------------+
|Money|Bank          |
+-----+--------------+
|500  |MACRO         |
+-----+--------------+
|0    |Santender Rio |
+-----+--------------+
|600  |Galicia       |
+-----+--------------+

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Используйте «Left join», чтобы получить все строки «Count», и Nz () , чтобы отобразить 0, когда в счете нет транзакций:

Select c.Code, Nz(sum(m.Money),0) as Money
From Count c
LEFT JOIN MoneyMovements m on c.Code = m.Bank_code
group by c.Code

Access действительно не понравилось имя таблицы "Count", поэтому вместо этого я использовал Counts, вот что я сделал:

enter image description here

SELECT Counts.code, Nz(Sum(MoneyMovements.Money),0) AS SumOfMoney
FROM Counts LEFT JOIN MoneyMovements ON Counts.Code = MoneyMovements.bank_code
GROUP BY Counts.code;

enter image description here

0 голосов
/ 16 ноября 2018

Вам нужно join с group by, как:

Select c.Code, sum(m.Money) as Money
From Count c
inner join MoneyMovements m on c.Code = m.Bank_code
group by c.Code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...