Mssql查询问题

Mssql查询问题,sql,sql-server,Sql,Sql Server,我有一个MSSQL数据库和以下表格 WHE 项目 当我执行查询时 select [Bin Code], sum([Quantity]) from dbo.[whe] where [Item No_]='0000955'GROUP BY [Bin Code] 获取返回的结果 +----------+----------+ | Bin Code | Quantity | +----------+----------+ | K2-3-3 | -3 | +----------+----

我有一个MSSQL数据库和以下表格

WHE

项目

当我执行查询时

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       |
+----------+----------+
但我需要这样的东西来工作

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_] 
我希望这样的结果

+-----------------+--------+----------+----------+
| Item No_ | Desc   | Bin Code | Quantity |
+-----------------+--------+----------+----------+
| 0000955         | Valve  | K2-3-3   | -3       |
+-----------------+--------+----------+----------+
| 0000955         | Valve  | C2-2-4   | 17       |
+-----------------+--------+----------+----------+
但是查询是不可执行的,并且得到的错误如下

列“dbo.Item.No”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中


如果要将
项目编号和
Desc
添加到输出中,则必须按照错误说明将它们包括在
分组依据中

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]

如果要显示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_])

您是否也可以发布预期的输出?如果您想在使用GROUP BY时选择列,则它们需要是GROUP BY子句的一部分或在聚合函数中(例如:SUM)。或者你需要重新思考你的方法,也许考虑一下和函数的窗口函数版本。并且您的查询有>2个错误:
之前来自<代码>旧式连接
;最后一个
必须更改为
上的
(如果您保持旧式连接,则
在哪里
);错误的聚合
。继续。。。。
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]
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_])