簡體   English   中英

使用PHP從MySQL中的多個表中添加總值

[英]Adding total values from multiple table in MySQL with php

我有2張桌子,我需要總結每個桌子價格列的總價值。 我對Stack進行了一些研究,但是看到的解決方案太長,而且似乎效率不夠。 使用MySQL,我試圖從StoreCoins中獲取總價值,再從StoreMemorabilia中獲取總價值,並從供應中獲取總價值,然后我想要兩個表的列的總和。 目前第一個代碼不起作用...

if($results = $this->dbConn->query("SELECT SUM(column) AS InventoryValue FROM (
                                        SELECT SUM(column) AS value FROM StoreCoins
                                        UNION ALL
                                        SELECT SUM(column) AS value FROM StoreMemorabilia
                                        ) allposts")){
while($data = $results->fetch_assoc()){
    $totalVal = $data['InventoryValue'];
    $totalVal .= ".00";

我需要知道我在上面的代碼中做錯了什么。

另一方面(這是與php相關的):我有以下腳本,一旦返回正確的值,它就會決定將美元值的逗號放在何處。 我想推薦一種更有效的方法來創建此功能及其結果。 switch語句工作得很好,可以執行我需要做的事情,我只是想以一種更加雄辯的方式編寫此語句。

switch(strlen($Val)){
    case 7:
        $rem = substr($Val, 1, 6);
        $Val = substr_replace($Val, ",", 1);
        $Val = $Val.$rem;
        break;
    case 8:
        $rem = substr($Val, 2, 6);
        $Val = substr_replace($Val, ",", 2);
        $Val = $Val.$rem;
        break;
    case 9:
        $rem = substr($Val, 3, 6);
        $Val = substr_replace($Val, ",", 3);
        $Val = $totalVal.$rem;
        break;
    case 10:
        $rem = substr($Val, 1, 10);
        $Val = substr_replace($Val, ",", 1);
        $Val = $Val.$rem;
        $rema = substr($Val, 5, 6);
        $Val = substr_replace($Val, ",", 5);
        $Val = $Val.$rema;
}

我希望以下是您所追求的:

select (
    ( select sum(`price`) from `StoreCoins` ) 
        + 
    ( select sum(`price`) from `StoreMemorabilia` )
) as 'total';

像這樣更改查詢

SELECT SUM(column) FROM ( 
SELECT SUM(column) AS value FROM StoreCoins

UNION 

SELECT SUM(column) AS value FROM StoreMemorabilia
) InventoryValue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM