Как выбрать 3 столбца в SQL и сделать COUNT, сделать INNER JOIN и отобразить их как 3 столбца, но без дублирующейся информации - PullRequest
0 голосов
/ 27 сентября 2018

Мне нужно перечислить имена и коды поставщиков и количество продуктов, поставленных каждым поставщиком, т.е. поставщик XXX предоставил продукты xxx, а поставщик YYY предоставил продукты yyy и т. Д. Я уже пробовал эти запросы, но не получаюрезультат, который я хочу.

SELECT p_code, 
       product.v_code, 
       vendor.v_name 
FROM   product 
    CROSS JOIN vendor; 

SELECT p_code, 
       vendor.v_code, 
       v_name 
FROM   product 
       JOIN vendor 
         ON vendor.v_code = product.v_code; 

SELECT v_code, 
       Count(DISTINCT( p_code )) 
FROM   product 
GROUP  BY v_code 
UNION 
SELECT v_name, 
       v_code AS NAME 
FROM   vendor; 

SELECT product.p_code, 
   product.v_code, 
   vendor.v_name 
FROM   product 
   INNER JOIN vendor 
           ON product.v_code = vendor.v_code; 

Это таблицы и столбцы;

Аналогичный вывод, но также необходимо указать имя поставщика:

SIMILAR OUTPUT BUT NEEDS VENDOR NAME LISTED AS WELL

Примеры таблиц

SAMPLE Tables

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете попробовать этот запрос тоже дает тот же результат, что и запрос "f @ 06".

select vendor.v_name, product.v_code, count(p_code) from product join vendor on product.v_code = vendor.v_code group by product.v_code;
0 голосов
/ 27 сентября 2018

Попробуйте ниже, используя внутреннее объединение и агрегацию:

SELECT VENDOR.V_CODE, V_NAME,count(distinct P_CODE) as productcount
FROM PRODUCT JOIN VENDOR ON VENDOR.V_CODE = PRODUCT.V_CODE
group by VENDOR.V_CODE, V_NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...