Сумма Value1 в таблице 1, когда Value2 существует в таблице 2 - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть 2 таблицы.Одна таблица содержит Customer_ID, Product_Code, and Price_Paid.

Таблица 2 представляет собой один столбец с Product_Code, характерным для определенного типа Продукта.

В таблице 1 указаны тысячи кодов товаров, а в таблице 2 - только около 500.

Я хотел бы написать запрос, который возвращает мне сумму Price_Paid ТОЛЬКО для клиента, когда Product_Code существует в таблице 2.

Нужно ли это делать в подзапросе илиМожно использовать оператор CASE для поиска соответствия кода продукта в таблице 2 в таблице 1 перед суммированием.

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Хотя с ответом @Eric Brandt проблем нет, он полагается, что Product_Code уникален в таблице продуктов.Более общим решением является использование EXISTS.И я думаю, что вы могли бы хотеть сумму по продукту, а не просто клиента?

SELECT
  Customer_ID, Product_Code
  SUM(Price_Paid) AS SumOfPrice
FROM
  Table1 as t1
WHERE EXISTS (
    select 1 from Table2
    where Product_Code = t1.Product_Code
)
GROUP BY 
  Customer_ID, Product_Code;
0 голосов
/ 25 февраля 2019

[T] сумма Price_Paid для покупателя ТОЛЬКО, когда код Product_Code существует в таблице 2.

Если я что-то не упустил, это просто INNER JOIN.

SELECT
  Customer_ID,
  SUM(Price_Paid) AS SumOfPrice
FROM
  Table1 as t1
  INNER JOIN
  Table2 as t2
    ON t2.Product_Code = t1.Product_Code
GROUP BY 
  Customer_ID;
...