0
我有一个MS SQL 2012数据库中的表有6列MS SQL,子查询和EXISTS ERROR
ID
JobDate DATETIME
DriverID INT
JobNUmber NVARCHAR(20)
JobStart TIME
JobEnd TIME
我想生成一个查询,会给我一个单独的行,每一天对于每个驱动程序有一天,JobNumbers的数量,最早的JobStart和最新的JobEnd(这部分很简单),然后是总小时数和总分钟数以及总分钟数。第二部分,我只能分别工作,如果我每个具体的一天和驱动程序。 (伊克!)
我正在这里“只有一个表达式可以在选择列表时,子查询不与EXISTS引入指定的错误。
这是我想作的工作。
DECLARE @mnth NVARCHAR(20) = 'Jan-16'
DECLARE @FROM NVARCHAR(20) = '2015-12-28'
DECLARE @TO NVARCHAR(20) = '2016-01-31'
SELECT @mnth AS 'Month',
x.DriverID As 'Driver',
DAY(x.JobDate) AS 'Day' ,
COUNT(x.JobNumber) AS 'Stops',
MIN(x.JobStart) AS 'Start',
MAX(x.JobEnd) AS 'End',
(SELECT
SUM(hrs) AS 'Hours', SUM(mins) AS 'Minutes', SUM(ABS(hrs * 60) + (ABS(mins))) AS 'Total Minutes'
FROM
(SELECT
ABS(SUM(E_hrs - S_hrs)) AS hrs,
ABS(SUM(E_mins - S_mins)) AS mins
FROM
(SELECT
DATEPART(HOUR,MIN(j.JobEnd)) AS E_hrs,
DATEPART(HOUR,MAX(j.JobStart)) AS S_hrs,
DATEPART(MINUTE,MAX(j.JobEnd)) AS E_mins,
DATEPART(MINUTE,MIN(j.JobStart)) AS S_mins
FROM Xora_Job_Time j
WHERE j.JobDate = x.JobDate
AND j.DriverID = x.DriverID
) a
) b
) c
FROM Xora_Job_Time x
WHERE x.JobDate >= @FROM
AND x.JobDate <= @TO
GROUP BY DriverID, DAY(JobDate), JobDate
ORDER BY DriverID, DAY(JobDate)
这部分的伟大工程!
DECLARE @mnth NVARCHAR(20) = 'Jan-16'
DECLARE @FROM NVARCHAR(20) = '2015-12-28'
DECLARE @TO NVARCHAR(20) = '2016-01-31'
SELECT @mnth AS 'Month',
x.DriverID As 'Driver',
DAY(x.JobDate) AS 'Day' ,
COUNT(x.JobNumber) AS 'Stops',
MIN(x.JobStart) AS 'Start',
MAX(x.JobEnd) AS 'End'
FROM Xora_Job_Time x
WHERE x.JobDate >= @FROM
AND x.JobDate <= @TO
GROUP BY DriverID, DAY(JobDate)
ORDER BY DriverID, DAY(JobDate)
,给我我寻找,但尝试添加的时间计数的信息是造成这种失败与EXISTS错误。
这工作,但我需要通过自己做的每一天,司机....
SELECT SUM(hrs)AS 'Hours', SUM(mins) AS 'Minutes', SUM(ABS(hrs * 60) + (ABS(mins))) AS 'Total Minutes'
FROM
(SELECT
ABS(SUM(E_hrs - S_hrs)) AS hrs,
ABS(SUM(E_mins - S_mins)) AS mins
FROM
(SELECT
DATEPART(HOUR,MIN(JobEnd)) AS E_hrs,
DATEPART(HOUR,MAX(JobStart)) AS S_hrs,
DATEPART(MINUTE,MAX(JobEnd)) AS E_mins,
DATEPART(MINUTE,MIN(JobStart)) AS S_mins
FROM Xora_Job_Time
WHERE JobDate = '2016-01-06'
AND DriverID = '3') a
) b
我得到的错误是存在子查询,我没有看到我想要的EXIST子句远不及它的帮助。
然而,在此先感谢!