我们有两个表table1和table2
表1
表2
我们需要结果表格为:
所有这些都应该在一个SQL查询中完成 提前谢谢。
答案 0 :(得分:1)
我认为你可以在没有第二个查询的情况下完成它,我测试了它并返回了你期望的值。
select table_2.id_pro,
product_name,
SUM(1) as Quantity,
priceprod,
SUM(1) * priceprod as 'quantity * priceprod'
from Table_2
inner join Table_1 t1 on table_2.id_pro = t1.id_pro
group by table_2.id_pro, product_name, priceprod
我的SqlFiddle测试http://sqlfiddle.com/#!3/08c2ef/1
答案 1 :(得分:0)
我相信这应该是你需要的,或者相当接近!您需要将第一个表格中的结果分组以获取数量值,然后将这些结果加入第二个表格,以便能够创建所需的输出。
SELECT t1.id_pro,
t2.product_name,
s.Quantity,
t2.priceperprod,
s.Quantity * t2.priceperprod
FROM table_2 t2
INNER JOIN (
SELECT COUNT(*) AS Quantity,
t.id_pro
FROM table_1 t
GROUP BY t.id_pro
) t1 ON t2.id_pro = t1.id_pro
答案 2 :(得分:0)
我相信这是正确的,我只是加入两个表并使用组然后计算每组记录多少,我希望这会对你有所帮助,谢谢。
SELECT
A.id_pro,
A.product_name,
(count(*)) AS Quantity,
A.priceperprod,
(COUNT(*) * A.priceperprod) AS Total
FROM table_2 A
LEFT JOIN table_1 B
ON B.id_pro = A.id_pro
GROUP BY A.id_pro
答案 3 :(得分:0)
猜猜这对你有帮助。
SELECT A.PRODUCT_CODE, A.PRODUCT_NAME, B.QUANTITY,
A.PRICE PRICE_PER_PRODUCT,
(B.QUANTITY * A.PRICE) TOTAL_PRICE FROM
TABLE2 A,
(SELECT X.PRODUCT, COUNT(X.PRODUCT) QUANTITY FROM TABLE1 AS X
GROUP BY X.PRODUCT) as B
WHERE A.PRODUCT_CODE = B.PRODUCT
ORDER BY A.PRODUCT_CODE
我正在做以下事情: