2016-05-13 18 views
2

私はMSSQLデータベースと以下の表MSSQLクエリの問題

WHE

+----------+----------+----------+ 
| Item No_ | Bin Code | Quantity | 
+----------+----------+----------+ 
| 0000955 | K2-3-3 | -2  | 
+----------+----------+----------+ 
| 0000955 | C2-2-4 | 3  | 
+----------+----------+----------+ 
| 0000955 | K2-3-3 | 5  | 
+----------+----------+----------+ 
| 0000955 | K2-3-3 | 1  | 
+----------+----------+----------+ 
| 0000955 | C2-2-4 | -1  | 
+----------+----------+----------+ 
| 0000955 | K2-3-3 | -10  | 
+----------+----------+----------+ 
| 0000955 | C2-2-4 | 7  | 
+----------+----------+----------+ 
| 0000955 | K2-3-3 | 3  | 
+----------+----------+----------+ 
| 0000955 | C2-2-4 | 8  | 
+----------+----------+----------+ 

は項目

私は、クエリを実行すると

select [Bin Code], 
sum([Quantity]) 
from dbo.[whe] 
where [Item No_]='0000955'GROUP BY [Bin Code] 

が返された結果を取得してい

+----------+----------+ 
| Bin Code | Quantity | 
+----------+----------+ 
| K2-3-3 | -3  | 
+----------+----------+ 
| C2-2-4 | 17  | 
+----------+----------+ 

しかし、私は、私は結果

+-----------------+--------+----------+----------+ 
| Item No_ | Desc | Bin Code | Quantity | 
+-----------------+--------+----------+----------+ 
| 0000955   | Valve | K2-3-3 | -3  | 
+-----------------+--------+----------+----------+ 
| 0000955   | Valve | C2-2-4 | 17  | 
+-----------------+--------+----------+----------+ 

として、このような何かをしたいだろうが、クエリが実行できないと

select we.[Bin Code], 
sum(we.[Quantity]), 
it.[Item No_], 
it.[Desc], 
from dbo.[whe] as we, 
dbo.[item] as it 
and it.[No_]=we.[Item No_] 

を動作するように、このようなものが必要

のようなエラーを取得

選択リストで 'dbo.Item.No_'列が無効です。becaそれは集合関数またはGROUP BY句に含まれていません。

+2

期待される出力も掲載できますか? – Dhaval

+0

GROUP BYを使用するときに列を選択する場合は、GROUP BY句の一部または集計関数(例:SUM)のいずれかにする必要があります。あるいは、あなたのアプローチを考え直し、多分SU​​Mのウィンドウ関数バージョンを検討する必要があります。 –

+0

あなたの期待どおりの結果をください。そして、あなたのクエリは2つ以上のバグを持っています:**、from ** from **; '古いスタイルの結合';最後の 'と'は 'on'に変更する必要があります(古いスタイルのままにしておけば' where')。不良集合 'sum'。つづく.... –

答えて

0

desc列を表示する場合は、次のクエリを使用できます。

select t1.[Bin Code],t1.[Quantity],t1.[Item No_],t2.[Desc] (select [Bin Code], 
sum([Quantity]) as [Quantity],[Item No_] 
from dbo.[whe] 
where [Item No_]='0000955'GROUP BY [Bin Code],[Item No_]) t1 
left join dbo.[Item] t2 
on (t1.[Item No_]=t2.[Item No_]) 
1

あなたはItem No_Descが出力に追加したい場合は、エラーが述べたように、あなたはgroup byでそれらを含める必要があります。

select [Item No_], [Desc], [Bin Code], sum([Quantity]) 
from dbo.[whe] w 
inner join dbo.[Item] i 
on w.[Item No_] = i.[Item No_] 
group by [Item No_], [Desc], [Bin Code]