none
关于ACCESS SQL的问题, RRS feed

  • 问题

  • 有下面一张表格,假设每个相同的订单id都有三个事件,分别是1创建订单,2扫码,3支付成功。

    求一个SQL把没有完成支付成功的无重复的订单id列出来

    2018年1月22日 16:53

答案


  • 我解决了,用一个子查询把支付成功的选出来,再配合NOT IN

    SELECT DISTINCT 订单id FROM [进度] WHERE 订单id NOT IN (SELECT 订单id FROM [进度] WHERE [事件]='支付成功')

    所有人都觉得在WHERE [事件]!=‘支付成功’或者WHERE [事件]<>‘支付成功’应该行得通的,包括我,(两条我都试过了)

    可在C#里面操作本地ACCESS数据库,

    上面两条就是无效。


    • 已编辑 Hank1983 2018年1月24日 21:59
    • 已标记为答案 Hank1983 2018年1月24日 21:59
    2018年1月24日 16:31

全部回复

  • select distinct  订单id from [表] where 事件!=3

    表名或字段名需要修改一下


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年1月23日 0:41
  • 已试过,无效果
    2018年1月23日 4:03
  • SELECT distinct 订单id
    FROM 进度 where 事件 <> '支付成功';
    2018年1月23日 10:54

  • 我解决了,用一个子查询把支付成功的选出来,再配合NOT IN

    SELECT DISTINCT 订单id FROM [进度] WHERE 订单id NOT IN (SELECT 订单id FROM [进度] WHERE [事件]='支付成功')

    所有人都觉得在WHERE [事件]!=‘支付成功’或者WHERE [事件]<>‘支付成功’应该行得通的,包括我,(两条我都试过了)

    可在C#里面操作本地ACCESS数据库,

    上面两条就是无效。


    • 已编辑 Hank1983 2018年1月24日 21:59
    • 已标记为答案 Hank1983 2018年1月24日 21:59
    2018年1月24日 16:31
  • 问题的关键是支付成功的订单都有3个事件,就是说有3条记录, [事件]!=‘支付成功   只是排除了记录,并未排除订单id

    2018年2月2日 15:14