我的以下查询获取的项目,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 ITEM类别Loc1owned Loc1added loc1total loc2owned loc2total loc3owned loc3added loc3total TOTAL(loc1toal + loc2total + loc3total)
由于之前的loc将全部用于2013年,我将拥有相同的(loc1owned,loc1total,loc2owned).....对于2012年,每个项目都将为1行,依此类推。
我的问题是如何在SQL中执行此操作。有一个循环....迭代...我相当新的这样的帮助将不胜感激。
答案 0 :(得分: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)
除非我知道它(和内容)的数据类型是什么,否则我不能做年份。