-2

Tbl1

fld1 fld12 fld3 fld4

Tbl2

fld5 fld6 fld7 

Tbl3

fld8 fld9 fld10 fld11 fld12 fld13

クエリ:

select fld8, fld11, fld12, sum(fld3), fld4
from tbl1, tbl2, tbl3
where fld1=fld5 and fld2=fld6 and fld7=fld8

クエリが実行されていません。結合を使用しましたが、合計が機能しません。でのクエリは機能しfld3ますが、機能しませんsum(fld3)。助けてください。

4

2 に答える 2

0

一部のデータベース エンジンでは、集計 (sum、count avg など) を使用するときにグループを指定する必要があります。

select fld8, fld11, fld12, sum(fld3), fld4
from tbl1, tbl2, tbl3
where fld1=fld5 and fld2=fld6 and fld7=fld8
GROUP BY fld8, fld11, fld12, fld4

または別の書き方

select fld8, fld11, fld12, sum(coalesce(fld3,0)), fld4
from tbl1 
INNER JOIN tbl2 on fld1=fld5 and fld2=fld6
INNER JOIN tbl3 on  fld7=fld8
GROUP BY fld8, fld11, fld12, fld4

現在、両方とも 3 つのテーブルすべてにレコードがあると想定しています。そうでない場合は、外部結合を使用し、エンジンに応じて合計フィールドまたは nvl で合体する必要がある場合があります。

かもね...

SELECT fld8, fld11, fld12, sum(coalesce(fld3,0)), fld4
FROM  tbl1 
LEFT JOIN tbl2 on fld1=fld5 and fld2=fld6
LEFT JOIN tbl3 on  fld7=fld8
GROUP BY fld8, fld11, fld12, fld4
于 2013-03-12T20:58:00.350 に答える
0

あなたは〜を持つ必要がありますgroup by

select fld8, fld11, fld12, sum(fld3), fld4 
from tbl1, tbl2, tbl3 where fld1=fld5 and fld2=fld6 and fld7=fld8 
group by fld8, fld11, fld12, fld4

それ以外の場合、関数はどのようにsum機能しますか?

于 2013-03-12T20:56:54.627 に答える