как подсчитать один столбец при получении данных из разных таблиц на основе идентификатора - PullRequest
0 голосов
/ 01 апреля 2019

Я написал запрос для получения данных из разных таблиц. Всего мне нужно получить 3 столбца данных из 3 таблиц на основе идентификатора, и один из этих столбцов - мне нужно получить количество строк таблицы

SELECT vm.Vendor_Name, vc.Contact_Name, COUNT(po.Purchase_order)
FROM vendor_master vm JOIN
     purchase_order po
     ON po.vendor_id = vm.vendor_id JOIN
     vendor_contacts vc
     ON vc.Vend_id = vm.vendor_id JOIN
     payment_master pm
     ON pm.Vendor_id = vm.vendor_id
WHERE vm.vendor_id = 1;

Я написал выше запрос для этого, но он дает некоторую ошибку

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

когда вы будете использовать агрегатную функцию с некоторым выбором столбцов, вам нужно сгруппировать по этим столбцам

SELECT vm.Vendor_Name, vc.Contact_Name, COUNT(po.Purchase_order)
FROM vendor_master vm JOIN
     purchase_order po
     ON po.vendor_id = vm.vendor_id JOIN
     vendor_contacts vc
     ON vc.Vend_id = vm.vendor_id JOIN
     payment_master pm
     ON pm.Vendor_id = vm.vendor_id
WHERE vm.vendor_id = 1
group by vm.Vendor_Name, vc.Contact_Name

так что в вашем запросе отсутствует группа по

0 голосов
/ 01 апреля 2019

Вам, кажется, нужно GROUP BY:

SELECT vm.Vendor_Name, vc.Contact_Name, COUNT(po.Purchase_order)
FROM vendor_master vm JOIN
     purchase_order po
     ON po.vendor_id = vm.vendor_id JOIN
     vendor_contacts vc
     ON vc.Vend_id = vm.vendor_id JOIN
     payment_master pm
     ON pm.Vendor_id = vm.vendor_id
WHERE vm.vendor_id = 1
GROUP BY vm.Vendor_Name, vc.Contact_Name;
...