0

根据可用于每种产品的供应商数量编写前 10 种产品。

此外,显示这些顶级产品所在的 PurchaseOrderID 数量。

select 
    top 10 pod.productid,
    count(vendorid)as no_of_vendors,
    count(poh.purchaseorderid)as no_of_purorder 
from purchasing.purchaseorderdetail pod join purchasing.purchaseorderheader poh  on
       pod.purchaseorderid=poh.purchaseorderid 
group by pod.productid order by count(vendorid) desc

我无法得到正确的输出。我使用了 20012 年的冒险作品。请为此查询提出答案。

4

1 回答 1

0
select 
    top 10 pod.productid,
    count(DISTINCT(vendorid))as no_of_vendors,
    count(poh.purchaseorderid)as no_of_purorder 
from purchasing.purchaseorderdetail pod join purchasing.purchaseorderheader poh  on
       pod.purchaseorderid=poh.purchaseorderid 
group by pod.productid order by count(DISTINCT(vendorid)) desc, count(poh.purchaseorderid) DESC

如果没有 DISTINCT,它只是计算与采购订单数量相同的东西。我认为这里的数据并不重要,但我还要指出,如果一个项目在同一个采购订单上出现两次,如果没有使用 DISTINCT 也会重复计算。顺便说一句,我还假设因为有太多产品只有三个供应商,所以您希望它进一步按该产品的采购订单数量排名。

于 2016-04-20T19:57:39.190 回答