mysql - 具有最大和多个连接的 sql
问题描述
我正在尝试获取每个客户在 mysql 上为每种产品支付的最后价格。以下 sql 没有给我正确的数据。max(dateLasFullfillment) 并没有太多的行值,它甚至不是最大的 vsalue。它就像最大之前的 group by 作品。
select
'item' AS type, soitem.productnum as 'SKU',
(soitem.unitprice / right(uom.code, length(uom.code) - 2)) as unitPrice,
replace(customer.name, "#", "") AS priceList,
max(soitem.dateLastFulfillment)
from
soitem
left join
so ON so.id = soitem.soid
left join
customer on so.customerid = customer.id
left join
product on product.num = soitem.productnum
left join
uom on product.uomid = uom.id
where
soitem.dateLastFulfillment > now() - interval 6 month
and soitem.unitprice > 0
and so.statusid in (20, 25, 60)
group by
soitem.productnum, customer.name
order by
PriceList
以下是一些具有预期结果的表格示例。sql 必须以 select 语句开头,除非没有其他选项,否则不能声明等。
SO表:
id billToName customerid dateCompleted dateCreated dateIssued num
1 Name1 1 6/27/18 6/23/18 6/23/18 ordernum1
2 Name1 1 7/15/18 7/10/18 7/10/18 ordernum2
3 Name1 1 7/29/18 7/20/18 7/20/18 ordernum3
4 Name2 2 6/31/2018 6/30/18 6/30/18 ordernum4
5 Name2 2 7/27/18 7/26/18 7/26/18 ordernum5
6 Name3 3 8/8/18 8/5/18 8/5/18 ordernum6
7 Name3 3 7/25/18 7/20/18 7/20/18 ordernum7
SOITEM 表:
id soId unitPrice dateLastFulfillment productId productNum statusId uomId qtyOrdered
1 1 10 6/27/18 1 SKU-1 50 11 3
2 1 20 6/27/18 2 SKU-2 50 12 5
3 1 30 6/27/18 3 SKU-3 50 13 6
4 2 11 7/15/18 1 SKU-1 50 11 11
5 2 21 7/15/18 2 SKU-2 50 12 44
6 2 31 7/15/18 3 SKU-3 50 13 5
7 3 12 7/29/18 1 SKU-1 50 11 5
8 3 22 7/29/18 2 SKU-2 50 12 6
9 4 23 6/31/2018 2 SKU-2 50 12 9
10 4 33 6/31/2018 3 SKU-3 50 13 12
11 5 24 7/27/18 2 SKU-2 50 12 14
12 5 34 7/27/18 3 SKU-3 50 13 35
13 6 25 8/8/18 2 SKU-2 50 12 22
14 6 35 8/8/18 3 SKU-3 50 13 55
15 7 26 7/25/18 2 SKU-2 50 12 22
16 7 36 7/25/18 3 SKU-3 50 13 11
产品表:
num uomid
SKU-1 11
SKU-2 12
SKU-3 13
计量表:
id code
11 cs10
12 cs20
13 cs30
客户表:
ID NAME
1 CUSTOMER1#
2 CUSTOMER2#
3 CUSTOMER3#
预期成绩:
type SKU unitPrice priceList max(soitem.dateLastFulfillment)
item SKU-1 1.2 customer1 7/29/18
item SKU-2 1.1 customer1 7/29/18
item SKU-3 1.03 customer1 7/15/18
item SKU-2 1.2 customer2 7/27/18
item SKU-3 1.13 customer2 7/27/18
item SKU-2 1.25 customer3 8/8/18
item SKU-3 1.17 customer3 8/8/18
解决方案
推荐阅读
- javascript - CSS中的技能栏
- angular - Angular - 如果一个返回 401,则阻止其他请求发出(取消其他请求)
- c# - 从函数调用问题返回表达式 Lambda
- sql - Postgres:如果表中不存在记录,则插入记录问题
- python - 添加两个没有排序索引的数据框
- sql - 计算SQL中的行之间花费的时间
- c# - Swagger(通过 NSwag)返回类型字段的描述
- python - 除了属性之外,Python 类方法还返回“无”
- c# - 如何在 .Net Core 中迁移 HttpResponse 和 HttpRequest
- javascript - 如何在 javascript 中临时禁用按钮或“单击”事件?