急问一个SQL问题(单表),在线等!

dljinsui 2006-12-18 08:57:11
订单明细表:
单号、行号(主键)
字段:

状态
金额
数量


查询订单号='WQAFG0001'的明细纪录。
SELECT * FROM 订单表 WHERE 订单号='WQAFG0001'

但我如果想查询订单号='WQAFG0001'的明细纪录,并且算出“显示行号”即:状态不等于历史的行号。

如订单号='WQAFG0001'的明细纪录有六条纪录,订单行号分别为1、2、3、4、5、6
其中第3、5行的状态为历史,那么“显示行号”即1、2、、3、、4

SELECT *,“显示行号” FROM 订单表 WHERE 订单号='WQAFG0001'

怎么提???
...全文
117 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
libin_ftsate 2006-12-18
  • 打赏
  • 举报
回复
SELECT *,case when 状态='历史' then -1 else (select count(*) from 订单表 where 订单号=a.订单号 and 行号<=a.行号 and 状态<>'历史') end as 显示行号 FROM 订单表 a WHERE 订单号='WQAFG0001'

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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