Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在CTE中添加计数/总和和分组依据_Sql_Sql Server - Fatal编程技术网

Sql 如何在CTE中添加计数/总和和分组依据

Sql 如何在CTE中添加计数/总和和分组依据,sql,sql-server,Sql,Sql Server,只是一个关于在飞行高度层上显示一行和显示该航班上有多少机组人员的计数的问题 我想更改输出,使其在飞行高度层仅显示一条记录,并显示另外两列。一列(CAB增量W)是具有'CREWTYPE'='F'的机组成员计数,另一列(cockpitcrew)是具有'CREWTYPE'='C'的机组成员计数 因此,查询结果应该如下所示: Flight DepartureDate DepartureAirport CREWBASE CockpitCrew CabinCrew LS361 2016-05-1

只是一个关于在飞行高度层上显示一行和显示该航班上有多少机组人员的计数的问题

我想更改输出,使其在飞行高度层仅显示一条记录,并显示另外两列。一列(CAB增量W)是具有
'CREWTYPE'='F'
的机组成员计数,另一列(cockpitcrew)是具有'CREWTYPE'='C'的机组成员计数

因此,查询结果应该如下所示:

Flight  DepartureDate DepartureAirport  CREWBASE  CockpitCrew CabinCrew
LS361    2016-05-19     BFS                BFS        0            3
请帮我调整一下下面的查询:

WITH CTE AS (
SELECT cd.*, c.*, l.Carrier, l.FlightNumber, l.Suffix, l.ScheduledDepartureDate, l.ScheduledDepartureAirport
FROM 
(SELECT *, ROW_NUMBER() OVER(PARTITION BY LegKey ORDER BY UpdateID DESC) AS RowNumber FROM Data.Crew) c
INNER JOIN 
Data.CrewDetail cd
ON c.UpdateID = cd.CrewUpdateID
AND cd.IsPassive = 0
AND RowNumber = 1
INNER JOIN 
Data.Leg l
ON c.LegKey = l.LegKey
)
SELECT
    sac.Airline + CAST(sac.FlightNumber AS VARCHAR) + sac.Suffix AS Flight
,   sac.DepartureDate
,   sac.DepartureAirport
,   sac.CREWBASE
,   sac.CREWTYPE
,   sac.EMPNO
,   sac.FIRSTNAME
,   sac.LASTNAME
,   sac.SEX
FROM 
Staging.SabreAssignedCrew sac
LEFT JOIN CTE cte
ON sac.Airline + CAST(sac.FlightNumber AS VARCHAR) + sac.Suffix = cte.Carrier + CAST(cte.FlightNumber AS VARCHAR) + cte.Suffix
AND sac.DepartureDate = cte.ScheduledDepartureDate
请试试这个

  SELECT    Flight,
            DepartureDate,
            DepartureAirport,  
            CREWBASE,
            SUM(CASE WHEN CREWTYPE = 'F' THEN 1 ELSE 0 END) AS CabinCrew ,
            SUM(CASE WHEN CREWTYPE = 'C' THEN 1 ELSE 0 END) AS CockpitCrew
      FROM  @Table
    GROUP BY Flight, DepartureDate, DepartureAirport, CREWBASE
请试试这个

  SELECT    Flight,
            DepartureDate,
            DepartureAirport,  
            CREWBASE,
            SUM(CASE WHEN CREWTYPE = 'F' THEN 1 ELSE 0 END) AS CabinCrew ,
            SUM(CASE WHEN CREWTYPE = 'C' THEN 1 ELSE 0 END) AS CockpitCrew
      FROM  @Table
    GROUP BY Flight, DepartureDate, DepartureAirport, CREWBASE
请试试这个:

select Flight, DepartureDate, DepartureAirport,CREWBASE,
count(case when CREWTYPE='F' then 1 end ) as CabinCrew,count(case when CREWTYPE='C' then 1 end ) as CockpitCrew 
from Staging.SabreAssignedCrew
group by Flight, DepartureDate, DepartureAirport,CREWBASE
请试试这个:

select Flight, DepartureDate, DepartureAirport,CREWBASE,
count(case when CREWTYPE='F' then 1 end ) as CabinCrew,count(case when CREWTYPE='C' then 1 end ) as CockpitCrew 
from Staging.SabreAssignedCrew
group by Flight, DepartureDate, DepartureAirport,CREWBASE