一条简单的SQL语句问题,请高手指点

zhangwei110 2007-07-27 09:17:34
我要求出列DocNum = '0000012345' 并且LineNum列最大的那条数据。
我像以下这样写,命令是完成了,但是执行的时候报错了。请高手指点该怎么写
网上查了是聚合函数的原因,听别人说要用 having 但是不知道怎么。
Select DocNum,max(LineNum),ItemCode,Dscription,Quantity,U_zld,VatGroup,Price,U_LotNo from OrderItem where (1 = 1) and (DocNum = '0000012345')
...全文
171 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
caowenkai 2007-07-27
  • 打赏
  • 举报
回复
1楼的朋友正解,感觉用top做的话不是很。
sansuihub 2007-07-27
  • 打赏
  • 举报
回复
select top 1 * from OrderItem where DocNum = '0000012345' order by LineNum desc
paoluo 2007-07-27
  • 打赏
  • 举报
回复
或者使用關聯


Select A.DocNum,A.LineNum,A.ItemCode,A.Dscription,A.Quantity,A.U_zld,A.VatGroup,A.Price,A.U_LotNo
from OrderItem A Inner Join
(Select DocNum, Max(LineNum) As LineNum from OrderItem Group By DocNum) B
On A.DocNum = B.DocNum And A.LineNum = B.LineNum
where (1 = 1) and (A.DocNum = '0000012345')
paoluo 2007-07-27
  • 打赏
  • 举报
回复
可以使用TOP, 不需使用子查詢。

Select TOP 1 DocNum,LineNum,ItemCode,Dscription,Quantity,U_zld,VatGroup,Price,U_LotNo from OrderItem where (1 = 1) and (DocNum = '0000012345') Order By LineNum Desc
BearRui 2007-07-27
  • 打赏
  • 举报
回复
try

select * from OrderItem
where DocNum = '0000012345' AND LineNum = (select max(LineNum) from OrderItem where DocNum = '0000012345' group by DocNum)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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