来条SQL语言救急哇

m0_37646670 2019-03-09 10:07:07
ACCESS数据库

ID 型号 …… 发货
001 A …… …… 已发完
001 B …… …… 已发完
001 C …… …… 已发完
002 A …… …… 未发完
002 C …… …… 已发完
003 B …… …… 已发完
004 A …… …… 未发完
004 B …… …… 已发完
004 A …… …… 已发完

怎么查找出 未发完的订单
002 A …… …… 未发完
002 C …… …… 已发完
004 A …… …… 未发完
004 B …… …… 已发完
004 A …… …… 已发完
...全文
256 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
a476678078 2019-03-18
  • 打赏
  • 举报
回复
select * from table where ID in (select ID from table where 发货 = '未发完')
taiyizhen123 2019-03-16
  • 打赏
  • 举报
回复
and not
victor_yang 2019-03-15
  • 打赏
  • 举报
回复


select * from Table1 where ID in (
select ID from Table1 where 发货 ='未发完')

Shimly_jiang 2019-03-14
  • 打赏
  • 举报
回复
1、先查出 未发货的订单号,在查出所有的
SELECT * FROM TABLE WHERE ID IN(
select ID from table where 发货='未发货')


RINK_1 2019-03-13
  • 打赏
  • 举报
回复

SELECT * FROM TABLE A
WHERE EXISTS 
(SELECT 1 FROM TABLE WHERE ID=A.ID AND 发货='未发完')


SELECT * FROM TABLE
WHERE ID IN
(SELECT ID FROM TABLE WHERE 发货='未发完')
八月十八 2019-03-13
  • 打赏
  • 举报
回复
引用 5 楼 m0_37646670 的回复:
[quote=引用 4 楼 buguxinyi 的回复:]
我咋看到很简单你自己搞复杂了呢
selecct * from table where 发货 like‘未发完’

你这样只能找出两条哦,我意思是找出所有没有发完的订单,有些订单是发了一半,你就找了那一半[/quote]
你问题描述的我只能帮到这,只能是建议,如果你是过滤nvarchar类型的字段时候用 like 或 not like 不要用等于号
封尘-莫若 2019-03-13
  • 打赏
  • 举报
回复
or一下就行了
m0_37646670 2019-03-11
  • 打赏
  • 举报
回复
引用 4 楼 buguxinyi 的回复:
我咋看到很简单你自己搞复杂了呢
selecct * from table where 发货 like‘未发完’

你这样只能找出两条哦,我意思是找出所有没有发完的订单,有些订单是发了一半,你就找了那一半
八月十八 2019-03-11
  • 打赏
  • 举报
回复
我咋看到很简单你自己搞复杂了呢
selecct * from table where 发货 like‘未发完’
m0_37646670 2019-03-10
  • 打赏
  • 举报
回复

SELECT * FROM((
SELECT 姓名, 数量, 未发, 备注 FROM [IN]
RIGHT JOIN
(SELECT INID FROM[IN] WHERE LEFT([INID], 2) = 'BH' AND 未发 <> '已发完' GROUP BY INID) A ON[A].INID = [IN].INID
ORDER BY 姓名) SSS
LEFT JOIN
(SELECT 最小日期, B.姓名, 地址 FROM (SELECT MIN(A.日期) AS 最小日期, 姓名 FROM (SELECT 姓名, 日期 FROM [IN]
RIGHT JOIN
(SELECT INID FROM[IN] WHERE LEFT([INID], 2) = 'BH' AND 未发 <> '已发完' GROUP BY INID) A ON[A].INID = [IN].INID) A GROUP BY 姓名) B
LEFT JOIN [客户] ON[B].姓名 =[客户].姓名) SS
ON SSS.姓名 = SS.姓名)
ORDER BY 最小日期,SS.姓名
m0_37646670 2019-03-10
  • 打赏
  • 举报
回复
凌晨2点,我感觉我写了个今生最复杂的句子:

SELECT * FROM ((SELECT 姓名, 数量, 未发, 备注 FROM[IN] RIGHT JOIN(SELECT INID FROM[IN] WHERE LEFT([INID], 2) = 'BH' AND 未发 <> '已发完' GROUP BY INID) A ON[A].INID = [IN].INID ORDER BY 姓名) SSS LEFT JOIN(SELECT 最小日期, B.姓名, 地址 FROM (SELECT MIN(A.日期) AS 最小日期, 姓名 FROM
(SELECT 姓名, 日期 FROM [IN] RIGHT JOIN(SELECT INID FROM[IN] WHERE LEFT([INID], 2) = 'BH' AND 未发 <> '已发完' GROUP BY INID) A ON[A].INID = [IN].INID) A GROUP BY 姓名) B lEFT JOIN[客户] ON[B].姓名 =[客户].姓名) SS ON SSS.姓名 = SS.姓名) ORDER BY 最小日期,SS.姓名
m0_37646670 2019-03-09
  • 打赏
  • 举报
回复
SELECT * FROM [TABLE]
RIGHT JOIN
(SELECT ID FROM [TABLE] WHERE 发货<>'已发完' GROUP BY ID) A
ON [A].INID = [IN].INID

34,590

社区成员

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

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