簡體   English   中英

從不同的表中選擇兩個不同的數據並顯示值

[英]selecting two different data from different table and display the value

我有兩個表tbl_product和tbl_sales。 我的問題是,如何從兩個不同的表中獲取數據並水平顯示,並從tbl_rsales中求和。 例如

    the ff data in my tbl_products are

    id|pcode|pdesc    |
    1 |1000 |wire     |
    2 |1443 |capactor |

    and the ff data in my tbl_sales are

    id|total|discount| pcode |
    1 |1000 |10      | 1000  |
    2 |2000 |20      | 1443  |
    3 |1000 |10      | 1000  |
    4 |1000 |20      | 1443  |

預期的輸出必須是這樣的。 如何從兩個不同的表中選擇它?

    id | pcode | pdesc     | total | discount |
    1  | 1000  | wire      | 2000  | 20       |
    2  | 1443  | capacitor | 3000  | 40       |

嘗試這個:

SELECT P.id, P.pcode, P.pdesc, COALESCE(SUM(S.total),0), COALESCE(SUM(s.discount),0)
FROM tbl_products P
LEFT OUTER JOIN tbl_sales S
ON P.pcode = S.pcode
GROUP BY P.id, P.pcode, P.pdesc

這個?

SELECT 
    tbl_products.*, 
    SUM(tbl_sales.total) as total, 
    SUM(tbl_sales.discount) as discount
FROM tbl_products 
LEFT JOIN tbl_sales ON tbl_sales.pcode = tbl_products.pcode
GROUP BY pcode
ORDER BY total ASC

使用這樣的聯接:

SELECT * FROM tbl_products INNER JOIN tbl_sales ON tbl_sales.pcode = tbl_products.pcode ORDER BY tbl_products.pcode

這將使它成為一張桌子。

這可以通過簡單的JOINGROUP BY來完成:

SELECT
    p.id,
    p.pcode,
    p.pdesc,
    SUM(s.total) AS total,
    SUM(t.discount) AS discount
FROM 
    tbl_products AS p
LEFT JOIN 
    tbl_sales AS s ON
        s.pcode = p.pcode
GROUP BY
    p.pcode
ORDER BY
    /* your call */
select p.id,p.pcode,p.desc,sum(s.sales),sum(s.discount)
from tbl_products p, tbl_sales s
where p.id = s.id
group by p.id,p.pcode,p.desc;

也嘗試一下:

SELECT 
    tbl_products.*, 
    SUM(tbl_sales.total) as total, 
    SUM(tbl_sales.discount) as discount
FROM tbl_products,tbl_sales 
where tbl_sales.pcode = tbl_products.pcode
GROUP BY pcode
ORDER BY total ASC

暫無
暫無

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

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