SQL查询某一字段的最大值
3个表,成品表、部件表、部件采购单表,某一成品在部件表下有若干个部件,每一部件在采购单下有多次采购记录,我想查询某一成品下的所有部件的最近采购记录。如下:《成品表》《部件...
3个表,成品表、部件表、部件采购单表,某一成品在部件表下有若干个部件,每一部件在采购单下有多次采购记录,我想查询某一成品下的所有部件的最近采购记录。如下:
《成品表》 《部件表》 《采购单表》
成品名称 成品名称 日期
属性 部件名称 部件名称
属性 单价
我想查询到的结果类似如下:
成品名称 部件名称 最近单价
A A1 2.0
A A2 1.2
A A3 1.5
B B1 2.5
B B2 1.0 展开
《成品表》 《部件表》 《采购单表》
成品名称 成品名称 日期
属性 部件名称 部件名称
属性 单价
我想查询到的结果类似如下:
成品名称 部件名称 最近单价
A A1 2.0
A A2 1.2
A A3 1.5
B B1 2.5
B B2 1.0 展开
9个回答
推荐于2016-06-20 · 知道合伙人软件行家
关注
展开全部
sql查询字段的最大值使用MAX()函数。
例:select max(a) from table
语句大意:检索表table中a字段中的最大值。
例:select max(a) from table
语句大意:检索表table中a字段中的最大值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT *
FROM (
SELECT A.成品名称
,B.部件名称
,C.单价
,ROW_NUMBER() OVER(PARTITION BY A.成品名称,B.部件名称 ORDER BY C.日期 DESC) AS RN
FROM 《成品表》 A
JOIN 《部件表》 B ON B.部件名称 = A.成品名称
JOIN 《采购单表》 C ON C.部件名称 = B.部件名称
)
WHERE RN = 1
ORDER BY 成品名称,部件名称
FROM (
SELECT A.成品名称
,B.部件名称
,C.单价
,ROW_NUMBER() OVER(PARTITION BY A.成品名称,B.部件名称 ORDER BY C.日期 DESC) AS RN
FROM 《成品表》 A
JOIN 《部件表》 B ON B.部件名称 = A.成品名称
JOIN 《采购单表》 C ON C.部件名称 = B.部件名称
)
WHERE RN = 1
ORDER BY 成品名称,部件名称
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select A.成品名称,A.部件名称,B.单价
from 部件表 A left join 采购单表 on A.部件名称 =B.部件名称
where 日期in(select max(日期) from 采购单表where 部件名称 =B.部件名称)
大概这样吧
from 部件表 A left join 采购单表 on A.部件名称 =B.部件名称
where 日期in(select max(日期) from 采购单表where 部件名称 =B.部件名称)
大概这样吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a.成品名称,b.部件名称,c.单价,max(c. 日期)
from 《成品表》 a
join 《部件表》 b on a.成品名称=b.部件名称
join 《采购单表》 c on b.部件名称=c.部件名称
from 《成品表》 a
join 《部件表》 b on a.成品名称=b.部件名称
join 《采购单表》 c on b.部件名称=c.部件名称
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询