34,594
社区成员
发帖
与我相关
我的任务
分享
SELECT D.salerNo,D.employeeName,Total,
CASE WHEN Total<5000 THEN Total*0.1
ELSE Total*0.15 END AS jiangjin
FROM (
SELECT A.salerNo,C.employeeName,sum(B.price*B.quantity) AS Total FROM OrderMaster AS A
JOIN OrderDetail AS B ON A.orderNo=B.orderNo
JOIN Employee AS C ON A.salerNo=C.employeeNo
WHERE YEAR(A.orderDate)=2008
GROUP BY A.salerNo,C.employeeName
)AS D
salerNo employeeName Total jiangjin
-------- ------------ --------------------------------------- ---------------------------------------
E2005002 张小梅 6080.60 912.090
E2005003 张小娟 10222.00 1533.300
E2007001 吴浮萍 1669.60 166.960
E2008002 张良 11657.80 1748.670
E2008003 黄梅莹 1161.40 116.140
E2008004 李虹冰 3847.00 384.700
--更正
CREATE PROCEDURE nzj4 @nianfen CHAR(10)
AS
BEGIN
SELECT a.salerNo, '总销售额'=SUM(b.quantity*B.price), '奖金'= CASE WHEN SUM(b.quantity*B.price) < 5000 THEN SUM(b.quantity*B.price) * 1.15
WHEN SUM(b.quantity*B.price) >= 5000 THEN SUM(b.quantity*B.price) * 1.25
ELSE 0 END
FROM OrderMaster A LEFT JOIN OrderDetail B
ON A.orderNo=B.orderNo
WHERE DATEPART(YEAR,a.orderDate)=@nianfen
GROUP BY A.salerNo
ORDER BY A.salerNo
END;
EXEC nzj4 '2008'
/*
salerNo 总销售额 奖金
E2005002 9814.40 12268.0000
E2005003 21542.00 26927.5000
E2007001 1669.60 1920.0400
E2008002 15047.80 18809.7500
E2008003 1161.40 1335.6100
E2008004 3847.00 4424.0500
*/
CREATE PROCEDURE nzj4 @nianfen CHAR(10)
AS
BEGIN
SELECT a.salerNo, '总销售额'=SUM(b.quantity), '奖金'= CASE WHEN SUM(b.quantity) < 5000 THEN SUM(b.quantity) * 1.15
WHEN SUM(b.quantity) >= 5000 THEN SUM(b.quantity) * 1.25
ELSE 0 END
FROM OrderMaster A LEFT JOIN OrderDetail B
ON A.orderNo=B.orderNo
WHERE DATEPART(YEAR,a.orderDate)=@nianfen
GROUP BY A.salerNo
ORDER BY A.salerNo
END;
EXEC nzj4 '2008'