0

我有以下查询获取项目,itemid,类别,数量,数量,数量总计,它们可以是不同位置的相同项目。

SELECT
    it.itemno,
    it.item,
    c.category,
    q.owned,
    q.added,
    (q.owned + q.added) AS total,
    (q.owned * it.cost) AS Tcost
FROM item it
INNER JOIN phiq     q  ON it.itemlid = q.itemlid
INNER JOIN category c  ON c.catid = it.catid
WHERE q.locationid = '12653'
  AND q.qdate LIKE '%2013%'

由于将有三个不同的位置,我需要在不同的位置运行这个查询 3 次不同的时间。还有几年这是 2013 年的,但我应该也不能在 2012 年运行这个查询,以便再次比较 3 个位置和然后对于每个项目,我需要每个位置的总数,例如:

ITEMID 项目类别 Loc1owned Loc1 added loc1total loc2owned loc2total loc3owned loc3 added loc3total TOTAL (loc1toal+loc2total+loc3total)

由于之前的 loc 都适用于 2013 年,因此我在 2012 年也会有相同的 (loc1owned, loc1total,loc2owned)..... 并且每个项目都是 1 行,依此类推。

我的问题是我将如何在 SQL 中做到这一点。是否有循环......迭代......我对此相当陌生,因此将不胜感激。

4

1 回答 1

1

你可以试试:

SELECT  q.locationid, it.itemno,it.item,c.category,q.owned
        ,q.added,(q.owned+q.added) as total, (q.owned*it.cost) as Tcost 
FROM    item it
        INNER JOIN phiq q on it.itemlid= q.itemlid
        INNER JOIN category c on c.catid=it.catid
WHERE   q.locationid IN ('12653', 'anotherlocation', 'nextlocation')
        AND (q.qdate LIKE '%2013%')
GROUP BY    q.locationid, it.itemno,it.item,c.category,q.owned,q.added
            ,(q.owned+q.added), (q.owned*it.cost)

除非我知道它的数据类型(和内容)是什么,否则我不能做这一年。

于 2013-01-30T04:30:32.963 回答