加入两个表并检索相关数据并计算结果

时间:2014-07-01 08:01:35

标签: sql

我们有两个表table1和table2
表1
Table 1
表2

enter image description here

我们需要结果表格为:

enter image description here

所有这些都应该在一个SQL查询中完成 提前谢谢。

4 个答案:

答案 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

我正在做以下事情:

  1. 将整个TABLE2别名为A
  2. 使用group by获取产品及其相应的计数,并将其别名为B
  3. 从table_Aliases A和B中选择相应的字段,只要A的ProductCode和B的产品相同。