在查询中按查询分组

时间:2013-06-14 19:09:21

标签: sql group-by firebird

我有一个运行firebird的数据库。

我想通过itemloc和itemcode获得项目数量的总和。 这些数据将包含在具有单个序列号的最终数据中。

SELECT itemloc, 
       itemcode, 
       (SELECT SUM(qty) FROM item_data 
           WHERE itemcode = item_data.itemcode itemloc = item_data.itemloc 
                 AND usecode ='INV' 
           GROUP BY itemloc, itemcode ), 
       serialno 
FROM item_data  WHERE usecode ='INV'

^此查询获取具有特定serialno的每个项目的数量,但我想在执行查询的这一部分时忽略serialno。

SELECT itemloc, itemcode, SUM(qty) FROM item_data
   WHERE usecode ='INV' 
   GROUP BY itemloc, itemcode

^此查询获取我想要的SUM,但无法获得我需要的其他信息。

tldr; 我想做这个工作

SELECT itemloc, itemcode, 
   (SELECT SUM(qty) FROM item_data 
       WHERE usecode ='INV' AND itemcode = item_data.itemcode AND itemloc = item_data.itemloc 
       GROUP BY itemloc, itemcode), 
       serialno 
FROM item_data  WHERE usecode ='INV'

^我在单例选择中返回多行

1 个答案:

答案 0 :(得分:1)

这类似于你想要的吗?

SELECT itemloc
   ,itemcode 
   , serialno 
   , thesum
FROM item_data  join        
(SELECT itemloc, itemcode, SUM(qty) thesum 
FROM itemh 
WHERE usecode ='INV' 
GROUP BY itemloc, itemcode ) temp on item_data.itemloc = temp.itemloc
and item_data.itemcode = temp.itemcode

WHERE usecode ='INV'