以文本方式查看主题 - 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=100657) |
-- 作者:ap9709130 -- 发布时间:2017/5/15 23:41:00 -- 请教SQL语句 有个SQL语句,不知道怎么写。订单明细表中 有个MID列,也有个CID列,另外一个编码表中也有个MID列和CID列,还有个产品编码的列。现在想如果编码表中存在当前MID和CID中的产品编码,就显示出来 se lec t (s e lect [产品编码] from {编码表} where MID = {订单明细}.MID and CID = {订单明细}.CID ) as 编码 from {订单明细} where 条件 会报错。要怎么写?
|
-- 作者:有点蓝 -- 发布时间:2017/5/16 8:19:00 -- Select b.[产品编码] from {编码表} As a Inner join {订单明细} As b on a.[MID] = b.[MID] And a.[CID] = b.[CID] where 条件 |
-- 作者:ap9709130 -- 发布时间:2017/5/16 13:43:00 -- 如果编码表中存在两行都是达到条件的,我只想要_Identify 最大的那一行,要怎么写? |
-- 作者:有点色 -- 发布时间:2017/5/16 14:07:00 -- sql语句你最后只需要得到一行数据?你的逻辑是不是有问题?
Select top 1 b.[产品编码] from {编码表} As a Inner join {订单明细} As b on a.[MID] = b.[MID] And a.[CID] = b.[CID] where 条件 order by [_Identify] desc [此贴子已经被作者于2017/5/16 14:37:50编辑过]
|
-- 作者:ap9709130 -- 发布时间:2017/5/16 14:21:00 -- 老师 因为编码是会换的,我只想要最新的编码!
|
-- 作者:有点色 -- 发布时间:2017/5/16 14:38:00 -- 那就用4楼的方法,加上排序,加上获取行数。 |
-- 作者:ap9709130 -- 发布时间:2017/5/19 14:37:00 -- 我的SQL语句如下: IIF({销售订单明细}.物料编码 is null,(se l e ct [物料编码] from {WLBM} where MID = {销售订单明细}.MID and CID = {销售订单明细}.CID),{WLBM}.物料编码) as 物料编码 当编码表中只 MID = {销售订单明细}.MID and CID = {销售订单明细}.CID 只有一行时,上面的语句是不会出错了,但是当有两行时,就会出错。如果能选中_Identify 最大的一行?
|
-- 作者:ap9709130 -- 发布时间:2017/5/19 15:00:00 -- 解决了,用 TOP 1 加上 order by 就可以了! |