Sql 不久前得到了另一个有效的答案-关于3号订单的好信息。不知道:-)所以我猜“选择顶部…”和“订购人…描述”总是粘在一起的?((还有)我喜欢不需要额外的括号(在你的解决方案中)) WITH Calendar AS (SELECT CAST(@Start
不久前得到了另一个有效的答案-关于3号订单的好信息。不知道:-)所以我猜“选择顶部…”和“订购人…描述”总是粘在一起的?((还有)我喜欢不需要额外的括号(在你的解决方案中))Sql 不久前得到了另一个有效的答案-关于3号订单的好信息。不知道:-)所以我猜“选择顶部…”和“订购人…描述”总是粘在一起的?((还有)我喜欢不需要额外的括号(在你的解决方案中)) WITH Calendar AS (SELECT CAST(@Start,sql,visual-studio-2008,sql-server-2005,Sql,Visual Studio 2008,Sql Server 2005,不久前得到了另一个有效的答案-关于3号订单的好信息。不知道:-)所以我猜“选择顶部…”和“订购人…描述”总是粘在一起的?((还有)我喜欢不需要额外的括号(在你的解决方案中)) WITH Calendar AS (SELECT CAST(@StartDate AS datetime) AS Date UNION ALL SE
WITH Calendar AS (SELECT CAST(@StartDate AS datetime) AS Date
UNION ALL
SELECT DATEADD(d, 1, Date) AS Expr1
FROM Calendar AS Calendar_1
WHERE (DATEADD(d, 1, Date) < @EndDate))
SELECT C.Date, C2.Country, COALESCE (SUM(R.[Amount of people per day needed]), 0) AS [Allocated testers]
FROM Calendar AS C CROSS JOIN
Country AS C2 LEFT OUTER JOIN
Requests AS R ON C.Date BETWEEN R.[Start date] AND R.[End date] AND R.CountryID = C2.CountryID
WHERE (C2.Country = @Country)
GROUP BY C.Date, C2.Country OPTION (MAXRECURSION 0)
Date Country Allocated testers
06/01/2010 Chile 3
06/02/2010 Chile 4
06/03/2010 Chile 0
06/04/2010 Chile 0
06/05/2010 Chile 19
Allocated testers
19
ORDER BY 'people needed DESC' LIMIT 1
select TOP 1 .... ORDER BY 'people needed' DESC
WITH Calendar
AS (
SELECT
CAST(@StartDate AS datetime) AS Date
UNION ALL
SELECT
DATEADD(d, 1, Date) AS Expr1
FROM
Calendar AS Calendar_1
WHERE
( DATEADD(d, 1, Date) < @EndDate )
)
SELECT TOP 1 *
FROM
(
SELECT
C.Date
,C2.Country
,COALESCE(SUM(R.[Amount of people per day needed]), 0) AS [Allocated testers]
FROM
Calendar AS C
CROSS JOIN Country AS C2
LEFT OUTER JOIN Requests AS R
ON C.Date BETWEEN R.[Start date] AND R.[End date]
AND R.CountryID = C2.CountryID
WHERE
( C2.Country = @Country )
GROUP BY
C.Date
,C2.Country
OPTION
( MAXRECURSION 0 )
) lst
ORDER BY lst.[Allocated testers] DESC
WITH Calendar AS (SELECT CAST(@StartDate AS datetime) AS Date
UNION ALL
SELECT DATEADD(d, 1, Date) AS Expr1
FROM Calendar AS Calendar_1
WHERE (DATEADD(d, 1, Date) < @EndDate))
SELECT TOP 1 C.Date, C2.Country, COALESCE (SUM(R.[Amount of people per day needed]), 0) AS [Allocated testers]
FROM Calendar AS C CROSS JOIN
Country AS C2 LEFT OUTER JOIN
Requests AS R ON C.Date BETWEEN R.[Start date] AND R.[End date] AND R.CountryID = C2.CountryID
WHERE (C2.Country = @Country)
GROUP BY C.Date, C2.Country
ORDER BY 3 DESC
OPTION (MAXRECURSION 0)