检查SQL Server中是否存在数据

时间:2016-07-26 09:53:36

标签: sql sql-server sql-server-2008

我试图从我的桌子创建一个检查。我有三张表haritransaksi& Outlet

我的表格hari只有一列名为days

              days
    2016-07-21 00:00:00.000
    2016-07-22 00:00:00.000
    2016-07-23 00:00:00.000
    2016-07-24 00:00:00.000
    2016-07-25 00:00:00.000
    2016-07-26 00:00:00.000

我的第二张桌子是transaksi

| outlet     | Tanggal |
  K-MGAS      2016-07-23 
  K-JGMM2     2016-07-24 
  K-JGMM2     2016-07-25  
  K-CL4       2016-07-26

,最后一个是outlet

   | OutletCode |
       K-MGAS
       K-JGMM2
       K-CL4

如您所见,日期outlet是主表,transaksi是交易表。现在,当我尝试选择没有任何交易的商店时,我遇到了问题。

我想要的结果是这样的

| Outlet |         Days          |
  K-MGAS  2016-07-21 00:00:00.000
  K-MGAS  2016-07-22 00:00:00.000
  K-MGAS  2016-07-24 00:00:00.000
  K-MGAS  2016-07-25 00:00:00.000
  K-MGAS  2016-07-26 00:00:00.000

我怎样才能实现这一目标?

3 个答案:

答案 0 :(得分:1)

使用Setting >> Developer Option >> Select Mock location app

LEFT JOIN

答案 1 :(得分:1)

使用交叉连接,然后使用左连接

SELECT O.OutletCode
       ,H.Days
FROM Outlet O
CROSS JOIN Hari H
LEFT JOIN Transaksi T ON T.Outlet = O.OutletCode
    AND T.Days = H.Days
WHERE T.Days IS NULL

答案 2 :(得分:0)

我认为您正在寻找类似于以下查询的内容:

SELECT *
FROM Outlet O
CROSS JOIN Hari H
WHERE NOT EXISTS (SELECT * FROM Transaksi WHERE Outlet=O.OutletCode AND Tanggal=H.Days)