Count会在这里为orderno工作吗?

时间:2015-12-30 17:37:23

标签: sql

我的数量非常高,这看起来是否正确?我想知道 我们在此时间范围内根据订单类型订购了多少订单号。

                  SELECT                                                     
                            count(*)  IHORNO                                         
                            FROM      A1665AFCV.ROISH T01 LEFT OUTER JOIN          
                                      A1665AFCV.ROORSHE T02                        
                      ON        T01.IHORNO = T02.OHORNO                        
                      WHERE     IHIDAT >= 20151229                             
                       AND     OHORDT IN ('SO', 'MO', 'FB', 'WH')    

1 个答案:

答案 0 :(得分:0)

你问道,“我的数量非常高,这看起来是否正确?”

可能不是。假设1-M关系(t01到t02),左连接将使T01中的记录士气低落到T02中每个记录的重复出现。如果假设表之间的基数(关系)为真,那么:

  1. count(*)会因加入
  2. 而夸大订单数量
  3. count(不同的T01.IHORNO)但是会计算独特的IHORNO值,我相信这就是你所追求的。 (唯一的订单与其他限制标准一样)
  4. SELECT count(DISTINCT T01.IHORNO) IHORNO
    FROM A1665AFCV.ROISH T01
    LEFT OUTER JOIN A1665AFCV.ROORSHE T02
      ON T01.IHORNO = T02.OHORNO
    WHERE IHIDAT >= 20151229
      AND OHORDT IN ('SO', 'MO', 'FB', 'WH')