select row_number() over(order by(select 1)) as RowNumber,
sum(StroageAmount) from
(
[align=center]select A.*,(A.IssueAmount-isnull((select sum(p.Amount) from w_ConstructionTeamListItem p where p.IssueItemId=A.ConstructionTeamGetItemId
and p.ConstructionTeamListId in(select w.ConstructionTeamListId from w_ConstructionTeamList w where w.NodeState<>'X')),0)) as StroageAmount
from dbo.w_ConstructionTeamGetItem A [/align]
)T
group by T.MaterialName,T.Producer,T.Model这样可以查询出RowNumber和StroageAmount,但是我还需要查询其它列显示出来。怎么改??
sum(StroageAmount) from
(
[align=center]select A.*,(A.IssueAmount-isnull((select sum(p.Amount) from w_ConstructionTeamListItem p where p.IssueItemId=A.ConstructionTeamGetItemId
and p.ConstructionTeamListId in(select w.ConstructionTeamListId from w_ConstructionTeamList w where w.NodeState<>'X')),0)) as StroageAmount
from dbo.w_ConstructionTeamGetItem A [/align]
)T
group by T.MaterialName,T.Producer,T.Model这样可以查询出RowNumber和StroageAmount,但是我还需要查询其它列显示出来。怎么改??
通过一个查询语句得到下面这个表结构:
项目ID,站名,站号,编号,名称,型号,生产厂家,库存再在这个查询语句的基础上库存的总和,条件是:名称,型号,生产厂家这三个列下的值必须一样我用了group by 名称,型号,生产厂家 进行分组,可以查询出总库存,但是不能将其它列的值查询出来。
报:选择列表中的列 '项目ID(ProjectId)无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
DECLARE @tb TABLE(ID INT,站名 varchar(10),站号 varchar(10),编号 varchar(10),名称 varchar(10),型号 VARCHAR(10),生产厂家 VARCHAR(10),库存 int)
INSERT INTO @tb
SELECT 1,'站名A','战号A','编号1','名称1','型号1','生产厂家1',500
UNION ALL
SELECT 2,'站名B','战号B','编号2','名称1','型号1','生产厂家1',200
UNION ALL
SELECT 3,'站名C','战号C','编号3','名称1','型号1','生产厂家1',100
UNION ALL
SELECT 4,'站名D','战号D','编号4','名称2','型号2','生产厂家2',150
UNION ALL
SELECT 5,'站名E','战号E','编号5','名称2','型号2','生产厂家2',350SELECT t.*,
(SELECT SUM(t2.库存) FROM @tb t2 WHERE t.名称=t2.名称 and t.型号=t2.型号 and t.生产厂家=t2.生产厂家) AS '总库存'
FROM @tb t/*
ID 站名 站号 编号 名称 型号 生产厂家 库存 总库存
----------- ---------- ---------- ---------- ---------- ---------- ---------- ----------- -----------
1 站名A 战号A 编号1 名称1 型号1 生产厂家1 500 800
2 站名B 战号B 编号2 名称1 型号1 生产厂家1 200 800
3 站名C 战号C 编号3 名称1 型号1 生产厂家1 100 800
4 站名D 战号D 编号4 名称2 型号2 生产厂家2 150 500
5 站名E 战号E 编号5 名称2 型号2 生产厂家2 350 500(5 行受影响)
*/