0

このような GROUP BY 句内で集計関数を使用する方法は?

SELECT VCH_DCOA_CODE, SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit
FROM  VCH_DEFINATION 
GROUP BY SUBSTRING(VCH_DCOA_CODE, 0, 6)
4

2 に答える 2

2

sum()完全ではVCH_DCOA_CODEなく部分文字列の値を表示したいように見えるgroup byので、これが必要だと推測しています:

SELECT v1.VCH_DCOA_CODE, v2.Debit
FROM VCH_DEFINATION v1
INNER JOIN
(
    select SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit, SUBSTRING(VCH_DCOA_CODE, 0, 6) Shortcode
    from VCH_DEFINATION
    group by SUBSTRING(VCH_DCOA_CODE, 0, 6)
) v2
    on v1.SUBSTRING(VCH_DCOA_CODE, 0, 6) = v2.Shortcode

サブクエリはSUM()for eachを取得しますSUBSTRING(VCH_DCOA_CODE, 0, 6)が、それはそれぞれのフルで表示されますVCH_DCOA_CODE

ただし、完全な を表示したくない場合はVCH_DCOA_CODE、内部クエリを使用して結果を取得できます。

 select SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit, SUBSTRING(VCH_DCOA_CODE, 0, 6) Shortcode
 from VCH_DEFINATION
 group by SUBSTRING(VCH_DCOA_CODE, 0, 6)
于 2012-11-28T13:52:11.770 に答える
1

以下のようSUBSTRING(VCH_DCOA_CODE, 0, 6)に句に追加する必要があります。select

SELECT SUBSTRING(VCH_DCOA_CODE, 0, 6), SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit
FROM  VCH_DEFINATION 
GROUP BY SUBSTRING(VCH_DCOA_CODE, 0, 6)
于 2012-11-28T13:50:28.453 に答える