Home > database >  Multiple Query In SQL
Multiple Query In SQL

Time:11-27

I have a table by name material transaction and I want to display data like Table B

Item Name Transaction Type Weight
A Issue Material 60
B Issue Material 80
A Return Material 20
B Return Material 10
A Issue Material 20
B Issue Material 10

I want result like below table Table B

Item Name Issue Material Return Material
A 80 20
B 90 10
$query = "SELECT item_name, SUM(material_wt) AS issue_material WHERE transaction_type = 'Issue Material' FROM material_transaction GROUP BY item_name UNION ALL SELECT item_name, SUM(material_wt) AS return_material WHERE transaction_type = 'Reject Material' FROM material_transaction GROUP BY item_name";
                        $select_query_table = mysqli_query($connection,$query);
                        while($run_select_query = mysqli_fetch_assoc($select_query_table)){
                 
                     $item_name = $run_select_query['item_name'];  
                     $wt = $run_select_query['material_wt'];  
                        echo "<td>$item_name</td>";                          
                       echo "<td>$wt</td>";                          
                        echo "</tr>";
                   
                    }

CodePudding user response:

You may use conditional aggregation:

SELECT
    item_name,
    SUM(CASE WHEN transaction_type = 'Issue Material'
             THEN Weight ELSE 0 END) AS Issue_Material,
    SUM(CASE WHEN transaction_type = 'Return Material'
             THEN Weight ELSE 0 END) AS Return_Material
FROM material_transaction
GROUP BY item_name;
  • Related