2012-01-02 13 views
-1

可能性の重複のためにデータをフェッチする行の値を使用する:
Geting value count from an Oracle Table同じ行の別の列

I 2つのテーブルA及びB

に単純なクエリを有します
Table A 
======== 
LOCATION, NAME 

Table B 
======== 
LOCATION, SKU 

クエリは次のとおりです。

select A.LOCATION, B.SKU 
    from A, B 
where A.Location = B.Location 

このクエリの結果では、上記のクエリで返されたSKUと同じSKUを持つB内のすべての場所の数を持つ別の列を追加したいと考えています。

+0

はここにあなたが探している答えとの質問がたくさんあります。例えばhttp://stackoverflow.com/questions/7239476/geting-value-count-from-an-oracle-tableはかなり近いです – Ben

+0

こんにちはベン...あなたが正しいかもしれません。実際に私は横断検索をしましたが、近くに自分自身を見つけることができなかったので、この質問を誠実に投稿しました。いずれにしても、質問は終了し、より多くの質問をすることは禁止されました。これは私には厳しいです。質問が誠意をもって尋ねられたと感じたらアップフォートすることができれば幸いです。 – Guddu

+0

私はあなたが誠意を持って@ guddoで尋ねなかったとは言わなかったが、あなたは私が質問を閉じるために投票しなかったことに気付くだろう。私はあなたの質問のいくつかをクリーンアップしました(そしてupvoted 1)が、あなたは本質的にあなたが州を受け取ったリンクを行う必要があります。 – Ben

答えて

2

ここでは、A.Location、B.SKU、およびB.SKUに存在するB.Location値のカウントが必要であると仮定しています。

Select A.Location, B.SKU, Count(B.Location) 
    from 
B Left outer join A on (B.Location = A.Location) 
Where B.SKU in (/* value */) 
group by A.Location, B.SKU 

をここで注意すべき唯一のことは、各A.Locationは、SKUに対して返さために、あなたがその場所に合わせ、SKUを参照してくださいということです。それが本当であれば、それだけで左外部結合する必要があります繰り返し回数:

Location1, ABC, 100 
Location2, ABC, 100 

がLocation3、ABC、100

2

Oracle analytical functionsを調べる必要があります。これにより、データをグループ化することなく集計カラム(カウントなど)を追加することができます。

ので、おそらくこのような何か:

select A.LOCATION, B.SKU, count(b.location) over (partition by sku) as locskucount 
    from A, B 
where A.Location=B.Location 
order by a.location 

は、これはあなたのSKUごとの場所の数を与えます。

関連する問題