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 つの異なる場所があるため、このクエリを別の場所で 3 回実行する必要があります。これは 2013 年の年もありますが、3 つの場所を再度比較するために 2012 に対してもこれを実行できるはずです。次に、アイテムごとに、各場所の合計が必要です。たとえば、次のようになります。

ITEMID ITEM カテゴリ Loc1owned Loc1added loc1total loc2owned loc2total loc3owned loc3added 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 に答える