SQL关联查询问题,左链接,MAX

qq_40307897 2017-11-25 09:08:42
USE imos
SELECT * FROM
IDBGPL LEFT JOIN IDBGRPS ON IDBGPL.ORDERID=IDBGRPS.ORDERID AND IDBGPL.ID=IDBGRPS.ID
LEFT JOIN IDBINFO ON IDBGPL.ORDERID=IDBINFO.ORDERID AND IDBGRPS.HIGHARTID=IDBINFO.ID
LEFT JOIN MAT ON IDBGPL.MATNAME=MAT.BESTELLUNG
WHERE IDBGPL.ORDERID='CCCCC' AND IDBGPL.ID=16437

--因为MAT表MAT.BESTELLUNG中对应的值又两行,所以没法指定唯一,
--现在想提取MAT表时间为MAX(DATE_LASTCHANGE)的一行作为最终查询结果。我写了个子查询,发现查询不出结果
--查询语句如下:
USE imos
SELECT * FROM
IDBGPL LEFT JOIN IDBGRPS ON IDBGPL.ORDERID=IDBGRPS.ORDERID AND IDBGPL.ID=IDBGRPS.ID
LEFT JOIN IDBINFO ON IDBGPL.ORDERID=IDBINFO.ORDERID AND IDBGRPS.HIGHARTID=IDBINFO.ID
LEFT JOIN MAT ON IDBGPL.MATNAME=MAT.BESTELLUNG
WHERE IDBGPL.ORDERID='CCCCC' AND IDBGPL.ID=16437
and MAT.DATE_LASTCHANGE IN(SELECT MAX(MAT.DATE_LASTCHANGE)FROM MAT)

...全文
107 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40307897 2017-11-25
  • 打赏
  • 举报
回复
谢谢大哥~爱死这论坛了~
顺势而为1 2017-11-25
  • 打赏
  • 举报
回复


SELECT * FROM 
IDBGPL LEFT JOIN IDBGRPS ON IDBGPL.ORDERID=IDBGRPS.ORDERID AND IDBGPL.ID=IDBGRPS.ID
       LEFT JOIN IDBINFO ON IDBGPL.ORDERID=IDBINFO.ORDERID AND IDBGRPS.HIGHARTID=IDBINFO.ID
       LEFT JOIN ( Select * 
					From MAT a
					Where DATE_LASTCHANGE=(Select max(DATE_LASTCHANGE) From MAT b Where a.BESTELLUNG=b.BESTELLUNG)
				 ) MAT   ON IDBGPL.MATNAME=MAT.BESTELLUNG
WHERE IDBGPL.ORDERID='CCCCC' AND IDBGPL.ID=16437


27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧