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,但是我还需要查询其它列显示出来。怎么改??

解决方案 »

  1.   


    通过一个查询语句得到下面这个表结构:
    项目ID,站名,站号,编号,名称,型号,生产厂家,库存再在这个查询语句的基础上库存的总和,条件是:名称,型号,生产厂家这三个列下的值必须一样我用了group by 名称,型号,生产厂家 进行分组,可以查询出总库存,但是不能将其它列的值查询出来。
    报:选择列表中的列 '项目ID(ProjectId)无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
      

  2.   


    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 行受影响)
    */