[英]Mysql sum with group_concat and join tables
我已經嘗試解決這個問題大約幾周了,但是仍然沒有答案,我想顯示具有相同產品條形碼的stock_table的總量,並顯示其項目描述。
我有三張桌子
product_table
ID| barcode | brand | unit | price
1 | 1111111 | Neozep | Tablet | 5.50
2 | 2222222 | Biogesic | Syrup | 7.50
庫存表
ID| batch | Total| barcode
1 | 5555555 | 100 | 1111111
2 | 6666666 | 500 | 1111111
productcontains_table
ID| Name | Amount | Type | barcode
1 | Paracetamol | 250 | mg | 1111111
2 | Amoxicilin | 20 | ml | 1111111
輸出應該是這樣的
Barcode | Item Description | Price | Total Qty | Amount
1111111 | Paracetamol 250 mg | Amoxicilin 20 ml | P5.50 | 600 | P3300
我當前的Sql語句,但這顯然是錯誤的,希望您能提前幫助我
SELECT
GROUP_CONCAT(DISTINCT productcontains_table.name ,' ',
productcontains_table.Amount,' ',
productcontains_table.Type
ORDER BY productcontains_table.IDno SEPARATOR ' | ' ) AS ItemDescription,
product_table.product_price AS Price,
SUM(inventory_table.inventory_total) AS TotalQuantity
product_table.price AS Price,
SUM(inventory_table.total) AS TotalQuantity,
product_table.price * SUM(inventory_table.total) AS TotalAmount
FROM inventory_table
JOIN product_table
ON product_table.barcode = inventory_table.barcode
JOIN productcontains_table
ON productcontains_table.barcode = product_table.barcode
GROUP BY inventory_table.barcode
修正了一些錯別字:
SELECT inventory_table.barcode,
GROUP_CONCAT(DISTINCT productcontains_table.name,' ', productcontains_table.Amount,' ', productcontains_table.Type SEPARATOR ' | ') AS ItemDescription,
product_table.price AS Price,
SUM(inventory_table.total)/ b.cnt AS TotalQuantity,
product_table.price * SUM(inventory_table.total) / b.cnt AS Amount
FROM inventory_table
JOIN product_table ON product_table.barcode = inventory_table.barcode
JOIN productcontains_table ON productcontains_table.barcode = product_table.barcode
JOIN
( SELECT barcode,
count(productcontains_table.name) AS cnt
FROM productcontains_table )b ON b.barcode=product_table.barcode
GROUP BY inventory_table.barcode,
product_table.price,
inventory_table.barcode
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.