を生成しません。SQLのGROUPは、私は2つのテーブルを持っている個別の行
T1:
DATE NAME DEBIT CREDIT
01.01.12 dad 5000
01.01.12 mum 6000
05.01.12 school 1000
01.02.12 dad 5000
01.02.12 mum 6000
10.02.12 tuition 300
10.02.12 snacks 100
01.03.12 dad 5000
01.03.12 mum 6000
01.03.12 books 500
02.03.12 rice 500
02.03.12 vegetables 900
03.03.12 snacks 100
01.04.12 dad 5000
01.04.12 mum 6000
01.04.12 meat 200
21.04.12 guest 800
T2:(obal +クレジット - デビット)の
DATE NAME TYPE OBAL
01.01.12 dr fee medical 8000
01.01.12 medicine medical -10000
01.01.12 dad income 400000
01.01.12 mum income 450000
05.01.12 school education 0
10.02.12 tuition education 0
10.02.12 snacks misc 0
01.03.12 books education 0
02.03.12 rice food 0
02.03.12 vegetables food 0
01.04.12 meat food 0
21.04.12 guest misc 0
和型(T2)でグループ化された各名が期待されます。クエリを使用して出力を得るには、次のとおりです。
SELECT
t2.type, obal + SUM(NVL(credit - debit, 0)) as bal
FROM t2
LEFT JOIN t1 ON t2.name = t1.name
GROUP BY
t2.type, t2.obal
結果:
TYPE BAL
education -1800
food -1600
income 420000
income 474000
medical -10000
medical 8000
misc -1000
私の質問は:なぜタイプincome
とmedical
が使用されているGROUP BY句にもかかわらず、クエリ出力に二回来なければなりません?私は列の前にDISTINCT句を追加しようとしたt2.typeと同じ出力を生成する!私は観察することができたことの一つは、T2が同じ名前とタイプincome
の2つのレコードに一致T1にレコードを持っていないテーブルでmedical
型の2つのレコードが非ゼロobal中を持っているということですt2。この問題を克服するために私を助けてください。
データベース情報を言及していないため申し訳ありません。 Windows 7でMicrosoft Visual Foxpro 9.0を使用しています。 – Ganapathy