Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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 d查询似乎给了我一行三个驾驶小时的总和。可以为三个驱动程序ID中的每一个返回三个sum()小时吗?@KirbyL.Wallace很抱歉没有响应-这里已经是晚上了。查询只是缺少必要的GROUP BY子句-对此表示抱歉。参见我的编辑(另请注意添加到最终选择)的_Sql_Sql Server_Tsql - Fatal编程技术网

Sql d查询似乎给了我一行三个驾驶小时的总和。可以为三个驱动程序ID中的每一个返回三个sum()小时吗?@KirbyL.Wallace很抱歉没有响应-这里已经是晚上了。查询只是缺少必要的GROUP BY子句-对此表示抱歉。参见我的编辑(另请注意添加到最终选择)的

Sql d查询似乎给了我一行三个驾驶小时的总和。可以为三个驱动程序ID中的每一个返回三个sum()小时吗?@KirbyL.Wallace很抱歉没有响应-这里已经是晚上了。查询只是缺少必要的GROUP BY子句-对此表示抱歉。参见我的编辑(另请注意添加到最终选择)的,sql,sql-server,tsql,Sql,Sql Server,Tsql,d查询似乎给了我一行三个驾驶小时的总和。可以为三个驱动程序ID中的每一个返回三个sum()小时吗?@KirbyL.Wallace很抱歉没有响应-这里已经是晚上了。查询只是缺少必要的GROUP BY子句-对此表示抱歉。参见我的编辑(另请注意添加到最终选择)的R.Driver\u ID)。 declare @day int = 14689; -- Today's "day" (# of days from 1/1/1980) declare @dep varchar(3) = 'BXBU'; dec


d查询似乎给了我一行三个驾驶小时的总和。可以为三个驱动程序ID中的每一个返回三个sum()小时吗?@KirbyL.Wallace很抱歉没有响应-这里已经是晚上了。查询只是缺少必要的
GROUP BY
子句-对此表示抱歉。参见我的编辑(另请注意添加到最终
选择
)的
R.Driver\u ID
)。
declare @day int = 14689; -- Today's "day" (# of days from 1/1/1980)
declare @dep varchar(3) = 'BXBU';
declare @carrier int = 1;
declare @flt int = 703;
declare @legcd char(1) = '';

SELECT  r.DRIVER_ID

FROM ROSTER r

JOIN CRROUTE cr ON (cr.CDATE = r.DUTYDAY 
                and cr.CROUTE = r.DUTYNO)

JOIN CrewLeg cl on (cl.CDATE = cr.CDATE 
                and cl.croute = cr.CROUTE 
                and cl.DAY = r.LEG_DAY 
                and cl.DEP = r.LEG_DEP 
                and cl.CARRIER = r.LEG_CARRIER 
                and cl.flt = r.LEG_FLT 
                and cl.LEGCD = r.LEG_LEGCD)

WHERE   r.leg_day = @day
AND     r.leg_dep = @dep
AND     r.leg_CARRIER = @carrier
AND     r.leg_flt = @flt
AND     r.leg_legcd = @legcd
AND     r.POS <= 2

GROUP BY r.ID,r.leg_day, r.leg_carrier, r.leg_flt, r.leg_legcd
1109
1209
1310
SELECT SUM(LT.BLON - LT.BLOF) as 'HOURSINTYPE'
FROM ROSTER R
INNER JOIN CREWLEG CL on R.LEG_DAY = CL.DAY AND R.LEG_CARRIER = CL.CARRIER AND R.LEG_FLT = CL.FLT AND R.LEG_DEP = CL.DEP AND R.LEG_LEGCD = CL.LEGCD AND R.DUTYDAY = CL.CDATE AND R.DUTYNO = CL.CROUTE
INNER JOIN LEGMAIN LM on R.LEG_DAY = LM.DAY AND R.LEG_CARRIER = LM.CARRIER AND R.LEG_FLT = LM.FLT AND R.LEG_DEP = LM.DEP AND R.LEG_LEGCD = LM.LEGCD
INNER JOIN LEGTIMES LT on R.LEG_DAY = LT.DAY AND R.LEG_CARRIER = LT.CARRIER AND R.LEG_FLT = LT.FLT AND R.LEG_DEP = LT.DEP AND R.LEG_LEGCD = LT.LEGCD
WHERE R.Driver_ID = {{Each_ID_From_1st_Query}} AND LEG_DAY <= @day AND PAX = 0 AND R.LEG_FLT > 0 AND LT.BLON != 0 AND LM.AC IN(8,10)
ID      Hours
-----   -----
1109    109
1209    530
1310    76
WITH cte1 AS (
    FIRST QUERY
), cte2 AS (
    SECOND QUERY
) SELECT -- uhm.... what? I can't get the ID from cte1 into cte2.
(FIRST QUERY) a
JOIN 
(SECOND QUERY) b
WHERE a.Driver_ID = b.Driver_ID
declare @day int = 14689; -- Today's "day" (# of days from 1/1/1980)
declare @dep varchar(3) = 'BXBU';
declare @carrier int = 1;
declare @flt int = 703;
declare @legcd char(1) = '';

WITH CTE AS (
    SELECT  r.DRIVER_ID
    FROM ROSTER r
    JOIN CRROUTE cr ON (cr.CDATE = r.DUTYDAY 
                    and cr.CROUTE = r.DUTYNO)
    JOIN CrewLeg cl on (cl.CDATE = cr.CDATE 
                    and cl.croute = cr.CROUTE 
                    and cl.DAY = r.LEG_DAY 
                    and cl.DEP = r.LEG_DEP 
                    and cl.CARRIER = r.LEG_CARRIER 
                    and cl.flt = r.LEG_FLT 
                    and cl.LEGCD = r.LEG_LEGCD)
    WHERE   r.leg_day = @day
    AND     r.leg_dep = @dep
    AND     r.leg_CARRIER = @carrier
    AND     r.leg_flt = @flt
    AND     r.leg_legcd = @legcd
    AND     r.POS <= 2
    GROUP BY r.ID,r.leg_day, r.leg_carrier, r.leg_flt, r.leg_legcd
)
SELECT R.Driver_ID, SUM(LT.BLON - LT.BLOF) as 'HOURSINTYPE'
FROM ROSTER R
INNER JOIN CREWLEG CL on R.LEG_DAY = CL.DAY AND R.LEG_CARRIER = CL.CARRIER AND R.LEG_FLT = CL.FLT AND R.LEG_DEP = CL.DEP AND R.LEG_LEGCD = CL.LEGCD AND R.DUTYDAY = CL.CDATE AND R.DUTYNO = CL.CROUTE
INNER JOIN LEGMAIN LM on R.LEG_DAY = LM.DAY AND R.LEG_CARRIER = LM.CARRIER AND R.LEG_FLT = LM.FLT AND R.LEG_DEP = LM.DEP AND R.LEG_LEGCD = LM.LEGCD
INNER JOIN LEGTIMES LT on R.LEG_DAY = LT.DAY AND R.LEG_CARRIER = LT.CARRIER AND R.LEG_FLT = LT.FLT AND R.LEG_DEP = LT.DEP AND R.LEG_LEGCD = LT.LEGCD
WHERE R.Driver_ID IN (SELECT DRIVER_ID FROM CTE)
  AND LEG_DAY <= @day
  AND PAX = 0
  AND R.LEG_FLT > 0
  AND LT.BLON != 0
  AND LM.AC IN(8,10)
GROUP BY R.Driver_ID
declare @day int = 14689; -- Today's "day" (# of days from 1/1/1980)
declare @dep varchar(3) = 'BXBU';
declare @carrier int = 1;
declare @flt int = 703;
declare @legcd char(1) = '';


WITH cte AS (
    SELECT  r.DRIVER_ID
    FROM ROSTER r
    JOIN CRROUTE cr ON (cr.CDATE = r.DUTYDAY and cr.CROUTE = r.DUTYNO)
    JOIN CrewLeg cl ON (cl.CDATE = cr.CDATE and cl.croute = cr.CROUTE and cl.DAY = r.LEG_DAY and cl.DEP = r.LEG_DEP and cl.CARRIER = r.LEG_CARRIER and cl.flt = r.LEG_FLT and cl.LEGCD = r.LEG_LEGCD)
    WHERE   r.leg_day = @day
    AND     r.leg_dep = @dep
    AND     r.leg_CARRIER = @carrier
    AND     r.leg_flt = @flt
    AND     r.leg_legcd = @legcd
    AND     r.POS <= 2
    GROUP BY r.ID,r.leg_day, r.leg_carrier, r.leg_flt, r.leg_legcd
)
SELECT cte.*, hours.*
FROM cte
JOIN (
    SELECT SUM(LT.BLON - LT.BLOF) as 'HOURSINTYPE'
    FROM ROSTER R
    INNER JOIN CREWLEG CL on R.LEG_DAY = CL.DAY AND R.LEG_CARRIER = CL.CARRIER AND R.LEG_FLT = CL.FLT AND R.LEG_DEP = CL.DEP AND R.LEG_LEGCD = CL.LEGCD AND R.DUTYDAY = CL.CDATE AND R.DUTYNO = CL.CROUTE
    INNER JOIN LEGMAIN LM on R.LEG_DAY = LM.DAY AND R.LEG_CARRIER = LM.CARRIER AND R.LEG_FLT = LM.FLT AND R.LEG_DEP = LM.DEP AND R.LEG_LEGCD = LM.LEGCD
    INNER JOIN LEGTIMES LT on R.LEG_DAY = LT.DAY AND R.LEG_CARRIER = LT.CARRIER AND R.LEG_FLT = LT.FLT AND R.LEG_DEP = LT.DEP AND R.LEG_LEGCD = LT.LEGCD
    WHERE LEG_DAY <= @day AND PAX = 0 AND R.LEG_FLT > 0 AND LT.BLON != 0 AND LM.AC IN(8,10)
    GROUP BY r.DRIVER_ID
) hours ON cte.DRIVER_ID = hours.DRIVER_ID