在select查询中获取无效值

时间:2014-09-21 08:48:18

标签: mysql sql join

我有两张表salessales_stg。第一个是源表,第二个是登台表。

  

在做审计的同时找出上述不一致之处   两个表,即使在暂存中没有行,我也会获得金额   表

DDL,DML语句和审计查询在SQL小提琴中给出 http://www.sqlfiddle.com/#!2/b3333/2

2 个答案:

答案 0 :(得分:0)

要查找不一致的记录,您可以使用从您的

派生的查询
select sum(SL.sales_amt) as SALES_SUM, sum(ST.sales_WIP_amt) as SALES_STG_SUM, SL.sales_id, SL.location
from sales SL INNER JOIN sales_stg ST
ON SL.sales_id = ST.sales_id
group by SL.sales_id, SL.location
having SALES_SUM != SALES_STG_SUM

如果这不是您想要的,您必须更详细地解释您尝试做的事情。

答案 1 :(得分:0)

如果您只想要行,只需使用具有多个条件的LEFT JOIN,并在第二个表中检查NULL。

   select  SL.sales_id,sales_amt, SL.location
   from sales SL LEFT JOIN sales_stg ST
   ON SL.sales_id = ST.sales_id AND sales_amt=sales_wip_amt
     and SL.location=ST.location
     where sales_wip_amt IS NULL