FROM sys.databases
CREATE TABLE Cust (
CustID NCHAR(7) PRIMARY KEY,
CustName NVARCHAR(20)
)
CREATE TABLE Production (
ProductionID CHAR(8) PRIMARY KEY,
ProductionName NVARCHAR(50)
)
CREATE TABLE OrderS (
OrderSID INT PRIMARY KEY,
CustID NCHAR(7),
ProductionID NCHAR(8),
OrderSNum INT
)
INSERT INTO Cust VALUES (‘0000001’, ‘ABC’)
INSERT INTO Cust VALUES (‘0000002’, ‘DEF’)
INSERT INTO Cust VALUES (‘0000003’, ‘GHI’)
INSERT INTO Cust VALUES (‘0000004’, ‘JKL’)
INSERT INTO Production VALUES (‘GK010001’, ‘CUP’)
INSERT INTO Production VALUES (‘GK020001’, ‘BED’)
INSERT INTO Production VALUES (‘GK030001’, ‘COFFEE’)
INSERT INTO Production VALUES (‘GK040001’, ‘PHONE’)
INSERT INTO OrderS VALUES (1, ‘0000001’, ‘GK010001’, 3)
INSERT INTO OrderS VALUES (2, ‘0000002’, ‘GK020001’, 2)
INSERT INTO OrderS VALUES (3, ‘0000003’, ‘GK010001’, 1)
INSERT INTO OrderS VALUES (4, ‘0000003’, ‘GK030001’, 1)
INSERT INTO OrderS VALUES (5, ‘0000002’, ‘GK040001’, 1)
INSERT INTO OrderS VALUES (6, ‘0000001’, ‘GK020001’, 1)
INSERT INTO OrderS VALUES (7, ‘0000004’, ‘GK030001’, 1)
INSERT INTO OrderS VALUES (8, ‘0000004’, ‘GK040001’, 2)
INSERT INTO OrderS VALUES (9, ‘0000002’, ‘GK030001’, 4)
, C.ProductionName
, SUM(A.OrderSNum) AS SUMORDER
FROM OrderS AS A
INNER JOIN Cust AS B
ON A.CustID = B.CustID
INNER JOIN Production AS C
ON A.ProductionID = C.ProductionID
GROUP BY B.CustName, C.ProductionName
FROM (SELECT B.CustName
, C.ProductionName
, SUM(A.OrderSNum) AS SUMORDER
FROM OrderS AS A
INNER JOIN Cust AS B
ON A.CustID = B.CustID
INNER JOIN Production AS C
ON A.ProductionID = C.ProductionID
GROUP BY B.CustName, C.ProductionName) AS A
PIVOT (SUM(SUMORDER) FOR [ProductionName] IN (CUP, BED,COFFEE,PHONE)) AS PVT
DROP TABLE Production
DROP TABLE OrderS
转载于:https://blog.51cto.com/googleandapple/
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199074.html原文链接:https://javaforall.net
