Sql SAP HANA-计数(*)提供不同的输出

Sql SAP HANA-计数(*)提供不同的输出,sql,sap,hana,Sql,Sap,Hana,我们正在使用SAP HANA 1.0 SPS12 当我在下面运行查询时- select count(*) from ( SELECT A.MATNR ARTICLE, A.WERKS SITE, ROUND((SUM(COALESCE((CASE WHEN A.BWART IN('551','951') THEN(A.DMBTR) END),0))-SUM(COALESCE((CASE WHEN A.BWART IN('552

我们正在使用SAP HANA 1.0 SPS12

当我在下面运行查询时-

select count(*)
  from ( SELECT A.MATNR ARTICLE,
                A.WERKS SITE, 
                ROUND((SUM(COALESCE((CASE WHEN A.BWART IN('551','951') THEN(A.DMBTR) END),0))-SUM(COALESCE((CASE WHEN A.BWART IN('552','952') THEN(A.DMBTR) END),0)))) DUMP_VALUE, 
                ROUND((SUM(COALESCE((CASE WHEN A.BWART IN('551','951') THEN(A.MENGE) END),0))-SUM(COALESCE((CASE WHEN A.BWART IN('552','952') THEN(A.MENGE) END),0)))) DUMP_QTY                   
           FROM MSEG A 
                INNER JOIN S_SITE_MASTER B ON A.WERKS=B.STORE_NO         
                INNER JOIN S_PRODUCT_MASTER C ON A.MATNR=C.MATERIAL                
          WHERE A.BUDAT_MKPF >= ADD_MONTHS(NEXT_DAY(LAST_DAY(ADD_DAYS(CURRENT_DATE,-1))),-1)
            AND A.BUDAT_MKPF <= ADD_DAYS(CURRENT_DATE,-1)                       
            AND A.BWART IN ('551','552','951','952')                                       
            AND C.LEVEL2 = 10                                                
            AND B.FORMAT_CD IN ('1')      
       GROUP BY A.MATNR,
                A.WERKS
       );
输出计数-29403(这是正确的计数)

B.FORMAT_CD的数据类型为NVARCHAR(3)


计数的行为如何不同?

如果
B.FORMAT\u CD
是一个字符串,那么这是比较值的正确方法:

 B.FORMAT_CD IN ('1') 
当您这样做时:

 B.FORMAT_CD IN (1) 
然后将
B.FORMAT\u CD
转换为字符串。我不确定这些值是什么样的,但是在这种情况下,
'001'
'01'
会匹配


这解释了差异,但并不能解释为什么('1')中的
返回的值比(1)
中的
返回的值要多,请您帮助我提供任何文档或注释,说明count(*)对不同数据类型的工作方式不同吗?对不起,我是新技术人员。在Oracle上运行相同的查询时,两种情况下得到的结果相同。Oracle是否固有地处理此问题,而SAP HANA也在这样做?您是否确定计数与这两个查询正确关联。是的计数是实际输出良好点。查看数据并尝试在('1','01','001')等中使用B.FORMAT_CD。。如果你的计数有变化,我会很感兴趣的。
 B.FORMAT_CD IN (1)