0

我现在对 SQL 语句有一点问题。我需要以某种方式在 Join 中按条件获取一个组。好吧,现在我知道这不起作用,但大多数情况下都有办法做到这一点,我希望你们能给我一个关于如何做到这一点的线索。

陈述:

SELECT 
   btst.Ordnungsbegriff AS BBNR,
   COUNT(vp.KVNR) 
   FROM T_Betriebsstaette btst
      JOIN T_VERSICHERUNGSZEIT vz
         ON vz.BETRIEBSNUMMER = btst.Ordnungsbegriff
         AND vz.VALIDTO = date('2999-12-31')
         AND vz.PERSONENKREIS = 'Beschäftigte'
         AND vz.BEITRAGSGRUPPEKV_IID > 0
         AND vz.PERSONENGRUPPENSCHLUESSEL IN (101, 102, 103, 118, 119)
         JOIN T_VERSICHERTEPERSON vp
            ON vp.OID = vz.VERSPERS_VERSPERSON_ID
            AND ('1' = '0' or '1' = '1' and (vp.VIPKENNZEICHEN is null or  NOT vp.VIPKENNZEICHEN is null and vp.VIPKENNZEICHEN  NOT  in (5, 6)))

Group By Clause 我必须进入那里:

GROUP BY vz."VALIDTO", vz."BETRIEBSNUMMER"

我并不是真正的 SQL 专家。希望你们能帮我一点忙。:)

4

1 回答 1

1

使用group by子句时,子句中的任何元素都select必须在group by子句中,或者是聚合函数(sum、max 等)

所以

SELECT 
   btst.Ordnungsbegriff AS BBNR,
   COUNT(vp.KVNR) 
   FROM 

   ...
GROUP BY vz."VALIDTO", vz."BETRIEBSNUMMER", btst.Ordnungsbegriff 
于 2012-11-02T08:45:35.680 回答