我有两个这样的表TableATableB

TableA

ItemCode |Qty    |BarCode       |Brand
AC       |2      |123           |BRO       
AB       |2      |1234          |BRO       
AD       |2      |1234          |BRO    

TableB

ItemCode |Brand  |BarCode       |Qty
AC       |BRO    |123           |1
AB       |BRO    |1234          |2

我试图得到类似Records TableA的结果不等于TableB数量,并且TableA记录不在TbleB

我尝试过的查询是

SELECT 
    A.ItemCode AS ItmA, B.ItemCode AS ItmB, A.Qty AS AQty, B.Qty AS BQty 
FROM 
    TableA A 
INNER JOIN  
    TableB B ON A.Brand = B.Brand 
WHERE 
    (A.Qty <> B.Qty)
    AND A.ItemCode NOT IN (B.ItemCode)

我得到这样的结果

ItmA   |ItmB   |AQty   |BQty
--------------------------------
AB     | AC    |  2    |  1
AD     | AC    |  2    |  1

但是我正在尝试使用ItemCode ACAD获得结果

===============>>#1 票数:1

如果要从TableA获取不在TableB ,请考虑LEFT OUTER JOIN

SELECT A.ItemCode AS ItmA,B.ItemCode AS ItmB,A.Qty AS AQty,B.Qty AS BQty
FROM TableA A LEFT JOIN
     TableB B
     ON A.Brand = B.Brand
WHERE A.Qty <> B.Qty OR B.Brand IS NULL;

其余的只是应用查询的逻辑。

您也可以这样表示:

SELECT A.ItemCode AS ItmA,B.ItemCode AS ItmB,A.Qty AS AQty,B.Qty AS BQty
FROM TableA A LEFT JOIN
     TableB B
     ON A.Brand = B.Brand AND A.Qty = B.Qty 
WHERE B.Brand IS NULL;

但是我认为第一个版本与您表达规则的方式很接近。

  ask by Rakesh translate from so

未解决问题?本站智能推荐:

1回复

连接具有两列的两个表SQL Server 2008 R2

我有两个表要合并在一起。 一个是具有各种信息位的表,另一个是维度视图,即各种定义表。 带有所需信息的表如下所示 其中ATN_DR_NO是主治医生ID号,而ADM_DR_NO是主治医生ID。 我有第二张桌子,上面有医生ID号及其相应的名称,如下所示 我要完成的工作是在具有以下
2回复

SQL内部连接来自不同数据库的两个表并更新其中之一

我有以下SQL查询: 每个表都在不同的数据库中,并且它们具有相同的列,但数据不同,ID匹配但数据不匹配。 我只想为表中的f2,f3,f4列设置值,如果它们具有相同的orderid,则要更新为第二个表中的值。 上面的命令一直说0行受影响,所以我的逻辑出了什么问题?
3回复

SQL连接具有不同行数的两个表并复制结果

首先,我要说的是,由于我不知道如何搜索该问题,因此该问题也可能是重复的。 情况如下: 我有以下两个表: 和 “ Language ”表包含4种语言的4条记录:英语,法语,意大利语,西班牙语。 表“产品”包含1条记录-英文名称为“ TEST”的产品。 我想对这两
4回复

具有多个INNER JOIN的SQL更新

我有两张桌子 和 现在,在stbl834中,HEALTH_PLAN_CATEGORY_VALUE_ID都设置为NULL,我需要根据来自stbl834的不同TSN值,从uvwCLIENT_HEALTH_PLAN中获取这些值。 有没有办法使用JOIN语句来做到这一点? 我需要避免
4回复

如何在sql中连接两个不相关的表

我有两张桌子: 表1:配方 表2:上下文 我需要以某种方式在sql server 2008 R2中加入这些表来获取一个表格,其中每个上下文id我将有一个完整的公式列表,即 结果
2回复

从SQL Server表中找到两个不同的记录

我需要在SQL Server 2008 R2表中找到所有具有一个ID却没有另一个ID的记录,但是我在努力设计查询。 该表是TransactionHistory ,它具有一个人员列和一个事务类型列。 在此特定情况下,存在未分配的取消分配交易类型。 一个有效的例子是分配1000英镑,出
1回复

忽略两个表sql server中存在的记录

表格1 表2 如果我必须传入参数值table1.department = 16,我如何创建存储过程它必须从table1中检索所有记录,但如果id在表2中,它必须忽略该记录。 如果我传递参数table1.department = 16,则为期望输出 产量 id
3回复

SQL Server中两个表之间的数据比较

我有一个要求,其中我有两个表tbl_bb和tbl_rr并且其中有数据,如下所示: tbl_bb : tbl_rr : 现在的要求是我要挑从tbl_bb和环通基于ISIN和代理和循环条件的加盟tbl_rr数据的每一个记录是从tbl_bb考虑日期和检查每个日期 tbl_rr ,
3回复

是否可以通过SQL Server 2008 R2中的联接条件从两个表中删除数据?

这是我的代码。 它不起作用。 SQL Server 2008 R2无法运行
2回复

INNER JOIN查看详细信息另一个表SQL

好吧,我有下表(表1): 然后我有下表(表2): 我想知道oItem 2中所有具有同一年链接到表1的oItem 。 结果应该是这样的: 有什么想法怎么做? 谢谢。