2.3 最大最小值所在的记录
选出金额最大的订单
SQL
WITH m AS (
SELECT max(Amount) mta
FROM Orders
WHERE OrderDate>='2022-01-01')
SELECT Orders.CustomerID,OrderDate,Amount,
Quantity, EmployeeID,EmployeeName,ShipVia
FROM m,Orders
WHERE m.mta=Orders.Amount and OrderDate>='2022-01-01'
SPL
A | |
---|---|
1 | >st=date(“2022-01-01”), start=days@o(st) |
2 | =file(“Orders.ctx”).open().cursor(;OrderDate>=start) |
3 | =A2.total(maxp@a(Amount)) |
A3 maxp@a(Amount) 表示获得 Amount 值最大的所有记录, 最大金额的订单可能有多个,要用 @a 全取出返回
选出每个销售员的最后签订的订单 SQL
WITH m AS (
SELECT EmployeeID,max(OrderDate) md
FROM Orders
WHERE Amount>1000
GROUP BY EmployeeID)
SELECT Orders.CustomerID,OrderDate,Amount,
Quantity, Orders.EmployeeID,EmployeeName,ShipVia
FROM m, Orders
WHERE m.EmployeeID =Orders.EmployeeID and m.md=Orders.OrderDate and Amount>1000
SPL
A | |
---|---|
1 | =file(“Orders.ctx”).open().cursor(;Amount>1000) |
2 | =A1.groups(EmployeeID; maxp(OrderDate)).(#2) |
3 | =A2.run(OrderDate=date@o(OrderDate)) |
A2 假定每个销售员最后签订的订单是唯一的,可以不用 @a 选项,直接 maxp 返回取值最大值的单条记录即可
还可以用 top 函数来写
A | |
---|---|
2 | =A1.groups(EmployeeID; top@1(1;-OrderDate)).(#2) |
A2 top@1(1;-OrderDate) 表示取 OrderDate 值最大的一条记录,如果不加负号则表示取值最小的记录
以下是广告时间
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅
嗯,还不太了解好多乾?
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅
嗯,还不太了解好多乾?