0

次の情報を表示するテーブルがあります。

order#   orderdate   Company   Itemno    itemdesc    sales   qty    price    location    ref#    dept.      discount   approvedstatus    ordertype   subrent

AH123   01/23/2013    HRV   T1456286    dog leash   T       50     10.00      LA         NR     ACESSORIES    0.00      APPROV     
AH123   01/23/2013    HRV   T1456286    dog bone   T        10     10.00      LA         AF     ACESSORIES    0.00      APPROV           O             F
TV1245  05/25/2013    T&T   T54895      staples              5     10.00     AB         ARC      SUPPLIES     0.00      APPROV           O             F      
TV1645  05/25/2013    T&T   T54895      paper               10     20.00     AB         ARC      SUPPLIES     0.00      APPROV           O             F   

このテーブルを使用して、次の情報を提供する要約テーブルを取得したいと思います。

Location      Rev       Non-Rev
LA         100.00      500.00
AB         250.00      0.00

つまり、場所に基づく total_Price は、ref# が「NR」と表示されている場合にのみ Non-Rev に入り、それ以外の場合は REV 列に入ります。

すべてを一時テーブルに挿入してから case ステートメントを使用してこれを試しましたが、CASE WHEN ref#<>'NR' SUM(price_qty) は使用できません。これは、ref# でグループ化する必要があるためです。私が実際に必要とするよりも多くの列。

どんな助けでも!!!

4

2 に答える 2

1

あなたは本当に親しかった:

SELECT  Location,
        SUM(CASE WHEN [ref#] = 'NR' THEN price_qty END) Rev,
        SUM(CASE WHEN [ref#] <> 'NR' THEN price_qty END) [Non-Rev]
FROM YourTable
GROUP BY Location
于 2013-10-10T16:30:01.827 に答える
0

よくわかりませんが、派生テーブルを使用できると思います。これは、詳細と派生した rev および非 rev 列であり、そこから要約できます。何かのようなもの:

select
col1,
...
sum(NonRev),
sum(rev)
from
(
select Col1,
...,
case when ref# <> 'NR' then price_qty else 0 end as NonRev,
case when ref# = 'NR' then price_qty else 0 end as rev
from
yourtable
) t1
group by 
col1,
...
于 2013-10-10T16:31:38.807 に答える