2015-04-24 3 views
2

Я пытаюсь присоединиться к 2 таблице из MYSQL в PHP С SUM. Но когда я получаю результат, он показывает многократный результат. Я не знаю, что случилось в моем сценарии. Пожалуйста помоги. Мой сценарий, показанный внизу:присоединение 2 таблицы с суммой в php

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

Обратите внимание, что результат должен быть группой по вечеринке –

+0

Его также работа, но он дает общий результат не партийным. Спасибо @ 3113490 – user3752230

+0

@VikasUmrao жаль, ребята .... Я думал, что это может помочь вам .. жаль, что я не был на своем ноутбуке, когда я это делал .. так что я не смог проверить это. –

Смежные вопросы