2013-01-04 70 views
0

如何獲得SUM查詢與查詢JOIN表,我有兩個表,我的表是laporanlaporan_pengeluaran得到加入表

表laporan

id name shell 
9 loli 12000 
10 ardi 24000 
11 dian 5500 

表laporan_pengeluaran

id laporan_id harga 
1 9   15000 
2 9   29000 
3 10   7500 
4 10   5000 
5 11   3000 
6 11   3000 

我的問題,如何獲得與連接表,我想這組由表laporan ID /名稱,那麼SUM得到如下結果:

id name shell harga 
9 loli 12000 44000 
10 ardi 24000 12500 
11 dian 5500 6000 

謝謝。

回答

5

您可以加入兩個表格,然後sum(harga)以獲得結果。如果你知道你將永遠在你的laporan_pengeluaranlaporan值,則可以使用INNER JOIN

select l.id, 
    l.name, 
    l.shell, 
    sum(lp.harga) harga 
from laporan l 
inner join laporan_pengeluaran lp 
    on l.id = lp.laporan_id 
group by l.id, l.name, l.shell 

SQL Fiddle with Demo

如果你可能已經在laporan_pengeluaran表中缺少laporan值,則使用一個LEFT JOIN

select l.id, 
    l.name, 
    l.shell, 
    sum(lp.harga) harga 
from laporan l 
left join laporan_pengeluaran lp 
    on l.id = lp.laporan_id 
group by l.id, l.name, l.shell 

SQL Fiddle with Demo

結果是:

| ID | NAME | SHELL | HARGA | 
----------------------------- 
| 9 | loli | 12000 | 44000 | 
| 10 | ardi | 24000 | 12500 | 
| 11 | dian | 5500 | 6000 | 
+0

您migth要考慮LEFT JOIN,如果laporan不是所有的行保證有laporan_pengeluaran –

+0

嗨bluefeet感謝答覆,相關行,你的代碼的工作,我必須給正確的答案用綠色檢查你的答案。很多,謝謝你。 –

0
SELECT 
    laporan.id AS id, 
    laporan.name AS name, 
    laporan.shell AS shell, 
    IFNULL(SUM(laporan_pengeluaran.harga),0) AS harga 
FROM laporan 
LEFT JOIN laporan_pengeluaran ON laporan.id=laporan_pengeluaran.laporan_id 
+0

嗨Eugen Rieck謝謝你的回覆,你的代碼我還沒有嘗試,導致我的問題解決了下面的答案。很多感謝的人。 –

0

嘗試此查詢

SELECT 
    l.id, 
    l.name, 
    IFNULL(lp.TCount,0) as Total 
FROM laporan as l 
LEFT JOIN (
      SELECT 
       laporan_id, 
       SUM(harga) as TCount 
      FROM laporan_pengeluaran 
      GROUP BY laporan_id 
      ) as lp ON lp.laporan_id = l.id 
+0

嗨raheel shan謝謝你的回覆,你的代碼我還沒有嘗試,導致我的問題解決了下面的答案。很多感謝的人。 –

0

試試這個:

SELECT l.id, l.name, l.shell, SUM(lp.harga) harga 
FROM laporan l 
LEFT JOIN laporan_pengeluaran lp ON l.id = lp.laporan_id 
GROUP BY l.id; 

入住這SQL FIDDLE DEMO

輸出:

| ID | NAME | SHELL | HARGA | 
----------------------------- 
| 9 | loli | 12000 | 44000 | 
| 10 | ardi | 24000 | 12500 | 
| 11 | dian | 5500 | 6000 |