如何在 SQL Server 中找到某些条件不存在的记录?

连姆尼森

我有两张桌子。

ItemRelation 表有 30k 条记录

ID     ChildID1     ChildID2     ChildID3
------------------------------------------
9      null         null          null
49     43           50                       //43 in childid1, don't want this record too
111    112          113           null
65     68           null          null
222    221          223           224
79     null         null          null
5773   5834         5838          null

F_ItemDailySalesParent 拥有数百万条记录

ItemID              StoreId
-----------------
9         1001   //ItemID 9,41,5773 belongs to 1001 StoreID
41        1001   
43        1400   //ItemID 43,45,65,5834 belongs to 1400 StoreID
45        1400
65        1400
68        2000   //ItemID 68,79 belongs to 2000 StoreID
79        2000
5773      1001
5834      1400
5838      2000 

我想显示 ItemRelation 表中的记录 ID,其中 F_ItemDailySalesParent 中的 ItemID 不存在于 ItemRelation

ItemID    StoreID
-----------------
49        1001
111       1001
65        1001
222       1001
79        1001

9         1400
111       1400
222       1400
79        1400

9         2000
49        2000
111       2000
222       2000
5773      2000

我尝试了以下查询。但这将在没有 StoreID 的情况下工作。但不知道上述结果

select ID from HQMatajer.dbo.ItemRelation ir
where not exists(
    select ID,StoreID
    from [HQWebMatajer].[dbo].[F_ItemDailySalesParent] Fid
    where fid.ItemID=ir.ID 
        or fid.ItemID = ir.ChildID1 
        or Fid.ItemID=ir.ChildID2 
        or Fid.ItemID=ir.ChildID3 
        and time between '2017-01-01 00:00:00.000' and '2017-02-28 00:00:00.000'
     group by ItemID,StoreID
  )

更新

我有Hqmatajer.dbo.Store那个列名storeCode = F_ItemDailySalesParent.Storeid

SqlZim

包括StoreId在使用时检查是否匹配not exists()

select ID 
from HQMatajer.dbo.ItemRelation ir
cross join (select distinct storeCode from Hqmatajer.dbo.Store) s
where not exists(
    select 1
    from [HQWebMatajer].[dbo].[F_ItemDailySalesParent] Fid
    where fid.StoreId = s.StoreCode
     and [time] between '2017-01-01 00:00:00.000' and '2017-02-28 00:00:00.000'
     and ( fid.ItemID=ir.ID 
        or fid.ItemID=ir.ChildID1 
        or Fid.ItemID=ir.ChildID2 
        or Fid.ItemID=ir.ChildID3 
        )
  )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果在 SQL Server 中不存在特定条件,如何检索数据?

来自分类Dev

如何在 SQL Server 中找到滚动季度收入的总和?

来自分类Dev

SQL Server中不存在约束

来自分类Dev

SQL Server存储过程-检查是否存在任何记录,如果不存在,则插入

来自分类Dev

如何在SQL Server中基于某些数量选择头寸

来自分类Dev

如何在SQL Server 2008中遍历某些XML数据?

来自分类Dev

如何在SQL Server中串联一对多记录

来自分类Dev

如何在SQL Server中捕获已删除的记录?

来自分类Dev

如何在SQL server中查找记录的变化

来自分类Dev

如何检查表SQL Server中不存在列数据

来自分类Dev

如何检索 SQL Server 中一个表的任何字段中不存在的数据?

来自分类Dev

如何在sql-server查询中找到操作员扫描的页数?

来自分类Dev

如何在LINQ中编写SQL“不存在”

来自分类Dev

如何在SQL Server中进行“条件比较”?

来自分类Dev

如何在SQL Server中获取不同条件的数据?

来自分类Dev

如何在SQL Server中根据条件获取xml节点

来自分类Dev

如何在SQL Server中锁定竞赛条件?

来自分类Dev

如何在SQL Server中使用条件更新多行

来自分类Dev

如何在SQL Server的OR条件中确定优先级

来自分类Dev

如何在SQL Server中按条件透视数据组?

来自分类Dev

如何在SQL Server中进行“条件比较”?

来自分类Dev

如何在 SQL Server 的条件中执行 JOIN 查询?

来自分类Dev

具有Max功能的其他表中不存在的SQL Server 2014 Select记录

来自分类Dev

如果SQL SERVER中不存在行(记录),则返回值

来自分类Dev

如果SQL SERVER中不存在行(记录),则返回值

来自分类Dev

具有Max功能的其他表中不存在的SQL Server 2014 Select记录

来自分类Dev

SQL Server 2016-创建不存在的记录时存储过程锁定

来自分类Dev

SQL Server:尝试在记录不存在时插入零计数

来自分类Dev

如何在MySQL的其他列中找到不存在的值

Related 相关文章

  1. 1

    如果在 SQL Server 中不存在特定条件,如何检索数据?

  2. 2

    如何在 SQL Server 中找到滚动季度收入的总和?

  3. 3

    SQL Server中不存在约束

  4. 4

    SQL Server存储过程-检查是否存在任何记录,如果不存在,则插入

  5. 5

    如何在SQL Server中基于某些数量选择头寸

  6. 6

    如何在SQL Server 2008中遍历某些XML数据?

  7. 7

    如何在SQL Server中串联一对多记录

  8. 8

    如何在SQL Server中捕获已删除的记录?

  9. 9

    如何在SQL server中查找记录的变化

  10. 10

    如何检查表SQL Server中不存在列数据

  11. 11

    如何检索 SQL Server 中一个表的任何字段中不存在的数据?

  12. 12

    如何在sql-server查询中找到操作员扫描的页数?

  13. 13

    如何在LINQ中编写SQL“不存在”

  14. 14

    如何在SQL Server中进行“条件比较”?

  15. 15

    如何在SQL Server中获取不同条件的数据?

  16. 16

    如何在SQL Server中根据条件获取xml节点

  17. 17

    如何在SQL Server中锁定竞赛条件?

  18. 18

    如何在SQL Server中使用条件更新多行

  19. 19

    如何在SQL Server的OR条件中确定优先级

  20. 20

    如何在SQL Server中按条件透视数据组?

  21. 21

    如何在SQL Server中进行“条件比较”?

  22. 22

    如何在 SQL Server 的条件中执行 JOIN 查询?

  23. 23

    具有Max功能的其他表中不存在的SQL Server 2014 Select记录

  24. 24

    如果SQL SERVER中不存在行(记录),则返回值

  25. 25

    如果SQL SERVER中不存在行(记录),则返回值

  26. 26

    具有Max功能的其他表中不存在的SQL Server 2014 Select记录

  27. 27

    SQL Server 2016-创建不存在的记录时存储过程锁定

  28. 28

    SQL Server:尝试在记录不存在时插入零计数

  29. 29

    如何在MySQL的其他列中找到不存在的值

热门标签

归档