-1

以下に示すように 2 つのテーブルがあります。SQL クエリで結合を使用して 2 つのテーブルを結合する必要がありますが、これは初めてなので、助けてください。3 番目のテーブルに示すように出力テーブルが必要です。

tbl_MonthList

MonthID  MonthList
1         January
2         February
3         March
4         April
5         May
6         June
7         July
8         August
9         September
10        October
11        November
12        December

tbl_Amount:

Month_id    Amount_Received    Customer_id
3              500             aaa
3             1000             bbb
4              700             jjj
5              300             aaa
5              400             jjj
5              500             ppp
7             1000             aaa
10            1500             bbb
12             700             jjj

以下に示すように出力が必要です

Month         Total_amount
January            0
February           0
March           2000
April            700
May             1200
June               0
July            1000
August             0
September          0
October         1500
November           0
December         700
4

3 に答える 3

1
SELECT
  tbl_MonthList.MonthList                        AS Month,
  COALESCE(SUM(tbl_Amount.Amount_Received), 0)   AS Total_amount
FROM
  tbl_MonthList
LEFT JOIN
  tbl_Amount
    ON tbl_MonthList.MonthID = tbl_Amount.month_id
GROUP BY
  tbl_MonthList.MonthList

では、に一致する行がない場合でも、LEFT JOINからすべての行を取得できます。tbl_MonthListtbl_Amount

次に、それは通常SUM()GROUP BYです。

SUM()データがない場合(この例では月 1 のように)はであるNULLため、 を使用COALESCE()して にNULL変換し0ます。


MonthIDmonth_idフィールド名が一致していないことにも注意してください。

于 2013-08-29T06:21:00.623 に答える
0
SELECT Count(PINJAM.Tgl) AS Peminjam, DatePart("yyyy",[Tgl]) AS Tahun, DatePart("m",[Tgl]) AS Bulan, IIf(DatePart("m",[Tgl])=1,"Januari",IIf(DatePart("m",[Tgl])=2,"Februari",IIf(DatePart("m",[Tgl])=3,"Maret",IIf(DatePart("m",[Tgl])=4,"April",IIf(DatePart("m",[Tgl])=5,"Mei",IIf(DatePart("m",[Tgl])=6,"Juni",IIf(DatePart("m",[Tgl])=7,"Juli",IIf(DatePart("m",[Tgl])=8,"Agustus",IIf(DatePart("m",[Tgl])=9,"September",IIf(DatePart("m",[Tgl])=10,"Oktober",IIf(DatePart("m",[Tgl])=11,"November","Desember"))))))))))) AS Ket
FROM PINJAM
GROUP BY DatePart("yyyy",[Tgl]), DatePart("m",[Tgl]), Format([Tgl],"m/yyyy"), IIf(DatePart("m",[Tgl])>1,"Januari","Februari")
ORDER BY DatePart("yyyy",[Tgl]), DatePart("m",[Tgl]);
于 2014-04-06T03:39:04.817 に答える