我正在使用WebMatrix构建一个网页,用于查询我们的会计软件并显示当天的顶级销售人员。
我有4名推销员:sam(推销员7)Jared(推销员8)Charlie(推销员12)Mitchell(推销员17)
查询代码:
var ssjb = db.QueryValue("SELECT SUM(SUBTOTAL) FROM dbo.DR_TRANS where Transdate = 41195 and SALESNO = 7 and subtotal >0");
var sjdp = db.QueryValue("SELECT SUM(SUBTOTAL) FROM dbo.DR_TRANS where Transdate = 41195 and SALESNO = 8 and subtotal >0");
var scjb = db.QueryValue("SELECT SUM(SUBTOTAL) FROM dbo.DR_TRANS where Transdate = 41195 and SALESNO = 12 and subtotal >0");
var smms = db.QueryValue("SELECT SUM(SUBTOTAL) FROM dbo.DR_TRANS where Transdate = 41195 and SALESNO = 17 and subtotal >0");
现在,我想评估四个查询的结果,并显示“Top Salesman: name ”
我迷失了如何评估查询,然后将销售员编号转换为相应的名称。
编辑:数据库结构:
staffno
(主键)和Name
。 subtotal
和salesno
- 两者都不是键。此表有一个滚动键,即发票号。Salesno
派生自staffno
(应用程序从登录详细信息中传递。)答案 0 :(得分:1)
这是你需要的吗?
SELECT TOP 1 staff.Name, SUM(SubTotal)
FROM Staff
INNER JOIN DR_TRANS on Staff.StaffNO = DR_TRANS.SalesNO
WHERE DR_TRANS.Transdate = 41195 and DR_TRANS.SALESNO IN (7,8,12,17) and DR_TRANS.subtotal > 0
GROUP BY staff.Name
ORDER BY SUM(SubTotal) DESC
结果将是具有最大subTotal的推销员的名称。
Top 1
将强制它仅返回第一行。
答案 1 :(得分:1)
下面,(我认为)指向您正在寻找的查询。这两个表都是使用INNER JOIN
通过链接列DR_TRANS.Salesno = Staff.StaffNo
加入的。它会列出所有有记录且Staff
的{{1}}人。无需为subtotal > 0
添加条件,因为它们根据其总交易按降序排列。
staffNo