2015-04-24 38 views
2

我想從PHP中用MYSQL連接2表和SUM。但是,當我得到的結果顯示乘法結果。我不知道我的劇本有什麼問題。請幫忙。我的腳本如下表所示:在php中加入2表與總和

table1: sale 
    id party amount 
    1  Topu  1000 
    2  Rashed 2000 
    3  Topu  5000 
    4  Topu  7000 
    5  Rashed 5000 

    table2: party_ledger 

    id party payment_amount 
    1  Topu   2000 
    2  Rashed  7000 
    3  Topu   4000 
    4  Topu   5000 
    5  Rashed  4000 

    <?php 
    $sql= "SELECT sale.party, party_ledger.party, SUM(sale.amount) AS amount, 
    SUM(party_ledger.payment_amount) AS pamount FROM sale 
    INNER JOIN party_ledger ON sale.party=party_ledger.party 
    GROUP BY sale.party,party_ledger.party"; 

    $result = $cn->query($sql); 

    while($row = $result->fetch_assoc()) { ?> 

    <tr style="font-size: 10px"> 

    <td><?php echo $row['amount']; ?></td> 

    <td><?php echo $row['pamount']; ?></td> 

    </tr> 

    <?php } 
    $cn->close(); ?> 

不幸的是我得到錯誤的結果。請幫忙。

+0

什麼用下來投票?我爲你做的查詢肯定會起作用。 –

回答

0
$sql= "SELECT sale.party, party_ledger.party, SUM(sale.amount) AS amount, 
     SUM(party_ledger.payment_amount) AS pamount FROM (select party,sum(amount) as amount from sale group by party) sale 
     INNER JOIN (select party,sum(payment_amount) as payment_amount from party_ledger group by party) party_ledger ON sale.party=party_ledger.party GROUP BY sale.party,party_ledger.party"; 

你可以試試上面的查詢

+0

是的!那是行得通的。非常感謝@ Vikas Umrao – user3752230

+0

如果它是正確的,請點擊右邊的檢查按鈕。 –

-1

我不確定它是否可以工作......但我想它會給你一個想法..你需要先在第一張桌子上查詢你想要的結果,然後在第二張桌子上做同樣的事情你可以加入他們兩個。

SELECT SUM(tbl_sale.total_amt) as sale_total, SUM(tbl_pt_ledger.ledger_total_amt) as ledger_total FROM (SELECT party, SUM(amount) as total_amt FROM sale GROUP BY party) tbl_sale INNER JOIN (SELECT party, SUM(payment_amount) as ledger_total_amt FROM party_ledger GROUP BY party) tbl_pt_ledger ON tbl_sale.party = tbl_pt_ledger.party

+0

請注意結果應該是group by party –

+0

它也可以工作,但它給出的總結果不是明智的。謝謝@ 3113490 – user3752230

+0

@VikasUmrao抱歉,傢伙....我認爲這可能會對你有所幫助..對不起,因爲我沒有在我的筆記本電腦上,當我這樣做..所以,我無法測試出來。 –