3 tables are in http://www.csdn.net/Expert/TopicView1.asp?id=951761
The output should be:
SupplierName CountOfOrdersWithLessThan70Items
Oracle 1
IBM 1
Informix 0
Microsoft 0
...全文
3617打赏收藏
The solution must work with SQL-92.
3 tables are in http://www.csdn.net/Expert/TopicView1.asp?id=951761 The output should be: SupplierName CountOfOrdersWithLessThan70Items Oracle 1 IBM 1 Informix 0 Microsoft 0
SELECT SupplierName, iif(CountOfOrders is null,0,CountOfOrders) AS CountOfOrdersWithLessThan70Items
FROM tblSupplier LEFT JOIN (SELECT SupplierID,COUNT(*) AS CountOfOrders FROM tblOrderItem INNER JOIN tblOrder
ON tblOrderItem.OrderID=tblOrder.OrderID
GROUP BY tblOrder.SupplierID
HAVING SUM(Requested)<70
) AS A ON tblSupplier.Supplierid=a.Supplierid;
SELECT SupplierName, iif(CountOfOrders is null,0,CountOfOrders) AS CountOfOrdersWithLessThan70Items
FROM tblSupplier LEFT JOIN (SELECT SupplierID,COUNT(*) AS CountOfOrders FROM tblOrderItem INNER JOIN tblOrder
ON tblOrderItem.OrderID=tblOrder.OrderID
GROUP BY tblOrder.SupplierID
HAVING SUM(Requested)<70
) AS A ON tblSupplier.Supplierid=a.Supplierid
order by CountOfOrders desc;
SELECT SupplierName,ISNULL(CountOfOrders,0) AS CountOfOrdersWithLessThan70Items
FROM Supplier
LEFT JOIN
(
SELECT SupplierID,COUNT(*) AS CountOfOrders FROM OrderItem INNER JOIN Order
ON OrderItem.OrderID=Order.OrderID
GROUP BY Order.SupplierID
HAVING SUM(Requested)<70
) AS A
ON Supplier.SupplierID=A.SupplierID
SELECT SupplierName,ISNULL(CountOfOrders,0) AS CountOfOrdersWithLessThan70Items
FROM Supplier
LEFT JOIN
(
SELECT SupplierID,COUNT(*) AS CountOfOrders FROM OrderItem INNER JOIN Order
ON OrderItem.OrderID=Order.OrderID
GROUP BY Order.SupplierID
HAVING SUM(Requested)<70
) AS A
SELECT Supplier.SupplierName,Count(OrderItem.OrderItemID) AS CountOfOrdersWithLessThan70Items
FROM Supplier
LEFT JOIN Order
ON Supplier.SupplierID=Order.SupplierID and Order.SupplierID in (
SELECT SupplierID FROM OrderItem INNER JOIN Order
ON OrderItem.OrderID=Order.OrderID
GROUP BY Order.SupplierID
HAVING SUM(Requested)<70
)
left join OrderItem
ON OrderItem.OrderID=Order.OrderID