Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 另一行中每一数据的一行总和不按分组方式分组_Sql_Oracle11g - Fatal编程技术网

Sql 另一行中每一数据的一行总和不按分组方式分组

Sql 另一行中每一数据的一行总和不按分组方式分组,sql,oracle11g,Sql,Oracle11g,我有一个SQL,它显示的结果与我在jasper报告中想要的结果不同 我有两个相同的行:3个表中的官员和医生。我想对每个官员的所有文件类型进行汇总,并按官员姓名对其进行分组。这是我的密码 但最终我的结果是,警官的名字没有被排序,我多次发现相同的名字 SELECT DAT, VAL, TYP, OFFICER, som FROM ( ------------------1-visa SELECT VR.DOC_DAT DAT, VR.DOC_VAL

我有一个SQL,它显示的结果与我在jasper报告中想要的结果不同

我有两个相同的行:3个表中的官员和医生。我想对每个官员的所有文件类型进行汇总,并按官员姓名对其进行分组。这是我的密码

但最终我的结果是,警官的名字没有被排序,我多次发现相同的名字

SELECT DAT, VAL, TYP, OFFICER, som
  FROM ( ------------------1-visa
       SELECT VR.DOC_DAT  DAT,
              VR.DOC_VAL  VAL,
              VR.DOC_TYP  TYP,
              VR.OFFICER  OFFICER,
              COUNT(*) as som
         FROM ASYEVR_VRQ_TAB vr
        WHERE vr.doc_dat > = to_date($P{p1},'dd/mm/yyyy')
          AND vr.doc_dat < = to_date($P{p2},'dd/mm/yyyy')
          AND (   ($P{p5} is null) 
               OR (vr.officer = $P{p5})
              ) 
        GROUP BY vr.officer, vr.doc_typ, vr.doc_dat, vr.doc_val
---------------------2-work permit 
       UNION
       SELECT GT.DOC_DAT  DAT,
              GT.DOC_VAL  VAL,
              GT.DOC_TYP  TYP,
              GT.OFFICER  OFFICER,
              COUNT(*) as som
         FROM ASYEVR_ASYWPE_TAB gt 
        WHERE gt.doc_dat > = to_date($P{p1},'dd/mm/yyyy')
          AND gt.doc_dat < = to_date($P{p2},'dd/mm/yyyy') 
          AND (   ($P{p5} is null) 
               OR (gt.officer = $P{p5})
              ) 
        GROUP BY gt.officer, gt.doc_typ, gt.doc_dat, gt.doc_val
---------------------3-residency 
       UNION
       SELECT RS.DOC_DAT  DAT,
              RS.DOC_VAL  VAL,
              RS.DOC_TYP  TYP,
              RS.OFFICER  OFFICER,
              COUNT(*) as som
         FROM ASYEVR_RESIDENCY_TAB rs
        WHERE rs.doc_dat > = to_date($P{p1},'dd/mm/yyyy')
          AND rs.doc_dat < = to_date($P{p2},'dd/mm/yyyy')
          AND (   ($P{p5} is null) 
               OR (rs.officer = $P{p5})
              ) 
        GROUP BY rs.officer, rs.doc_typ, rs.doc_dat, rs.doc_val
        )

    <field name="OFFICER" class="java.lang.String"/>
    <field name="TYP" class="java.lang.String"/>
    <field name="som" class="java.math.BigDecimal"/>
但我需要的是看到这样

officer         DOC_TYP           SUM
Mike           visa                7
mike           visa                8
mike           work permit         2
laura          work permit         1
laura          work permit         2
laura          work permit         3
mike           visa                   7
               work permit            5

laura          visa                   9 
               work permit            2

您的查询没有排序依据。为什么你希望你的结果被订购?哈哈,我忘了订购了哈哈,谢谢你的帮助;)你真的在问他们他们没有分类吗,或者为什么你会多次看到相同的官员/文件类型组合,即使它们被排序?我有很多2个问题,它们现在被排序了,但我想看到每个官员每个文件类型的总和,例如,我们有官员马克·劳拉·迈克尔和玛丽亚,我看到它就像那个官员-文件类型SUMi看到的那样警官DOC_TYP SUM Mike visa 7 Mike visa 8 Mike laura工作许可证1 laura工作许可证2 laura工作许可证3但我想看到的是Mike visa 7的工作许可证5劳拉签证9工作许可证2