以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何用SQL语句得到这样一个表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72225) |
||||
-- 作者:loongtai -- 发布时间:2015/7/26 10:47:00 -- [求助]如何用SQL语句得到这样一个表 表结构如下: 同一物料全编号,同一到货编号,同一流水号的数据可能有多个记录。 将单据编号排序,即可得到每个记录的操作顺序。 现希望将同一物料全编号同一到货编号同一流水号的最近一次操作记录状态为0的行提取出来,组成一个新表。 身份列 状态 其中身份列=物料全编号 & “|” & 到货编号 & “|” & 流水号
|
||||
-- 作者:大红袍 -- 发布时间:2015/7/26 11:28:00 -- select 物料全编号 + \'|\' + 到货编号 + \'|\' & 流水号 as 身份, (select top 1 状态 f-rom {表1} as b where a.物料全编号 = b.物料全编号 and a.到货编号 = b.到货编号 and a.流水号 = b.流水号 order by 单据编号 desc) as 状态 f-rom {表1} as a group by 物料全编号, 到货编号, 流水号 |
||||
-- 作者:loongtai -- 发布时间:2015/7/26 14:55:00 -- 按以上的语句,能实现我所想要的结果,如果更进一步,只挑出top 1 状态=0的记录,该如何操作?我试着修改了下,但是不成功 |
||||
-- 作者:大红袍 -- 发布时间:2015/7/26 14:57:00 -- select * f-rom (sql语句) where 状态 = 0 |
||||
-- 作者:loongtai -- 发布时间:2015/7/26 15:08:00 -- 如果我之前得到的那个表只需要身份列,不需要状态列,那这个语句是不是能简单点?
|
||||
-- 作者:大红袍 -- 发布时间:2015/7/26 15:10:00 -- 看4楼,那样写才正确。 |
||||
-- 作者:loongtai -- 发布时间:2015/7/26 15:19:00 -- 4楼的我试过了,是正确的。 |