Извлечение данных из 3 связанных таблиц с INNER JOIN - PullRequest
0 голосов
/ 10 июня 2018

Я хочу получить сумму столбцов цен и товаров, которые связаны с 3 таблицами. Я пытаюсь использовать INNER JOIN в следующем сценарии.Отображается только 1 сумма счета.И еще оператор не отображает 0, когда данные равны 0.

function TotalRecord($total){
global $db;
$date = date("Y-m-d");
     $query = $db->prepare("SELECT sum(a.prices), sum(a.item) FROM items a INNER 
    JOIN invoice_items b ON a.item_id = b.item_id INNER JOIN invoices c ON 
    b.invoiceId = c.invoiceId  WHERE c.invoice_date = :date ");
    $query->bindParam(':date', $date);
    $query->execute();
    for($i=0; 
             $rows = $query->fetch(); 
    $i++){
         $totalPrice = $rows['sum(a.prices)'];
         $totalitems = $rows['sum(a.item)'];
         $array = array('total' => $totalPrice , 'items' => $totalitems );

        if(count($array) > 0)
        {
            echo $array[$total];
        }
        else
        {
            echo "0";
        }

    }
}

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

попробуйте

 SELECT sum(a.prices), sum(a.item) FROM (items a INNER 
JOIN invoice_items b ON a.item_id = b.item_id INNER JOIN invoices c ON 
b.invoiceId = c.invoiceId )  group by  b.item_id,b.invoiceid WHERE c.invoice_date = :date
0 голосов
/ 10 июня 2018

Если у вас есть несколько функций SUM, вам, вероятно, следует использовать инструкцию GROUP BY.См. Ниже https://www.w3schools.com/sql/sql_groupby.asp
https://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php

...