我有一个查询,它使用最大聚合函数来计算特定选择日期的重置日期。有一个表vp_Accrual有有效日期field.selection日期被传递到有效日期字段和基于使用最大值函数计算重置日期。此查询只给出特定选择日期的结果。它会根据所选择的日期计算重置日期。sql与日期组和范围
我想对其进行修改,以便它能给我一个日期范围的重置日期。 下面的查询给出了1月1日之后的一个人的输出如下。
我们需要修改查询,以便它会给对于多重选择日期,而不是只有一个选择日期的结果。
我试着在@selectiondate和@enddate之间添加@enddate字段作为有效日期。
但我想这种方法是不正确的。
我想传递范围的日期,如1月1日至1月4日,它应该给每个日期输出如下
[图像将作为链接,因为我没有足够的Repuation点] [https://i.stack.imgur.com/0HSX1.jpg]
以下是使用的查询。
DECLARE @selectionDate datetime
SET @selectionDate = CONVERT(nvarchar(10), DATEADD(dd, 0, CAST('01/01/2017' AS datetime)), 101)
SELECT
e.personnum,
ac.name as Accrul_Code,
@selectionDate as Selection_DATE,
CASE
WHEN MAX(va.effectivedate) IS NULL THEN CAST('1/1/1753' AS datetime)
ELSE MAX(va.effectivedate)
END AS resetdate
FROM vp_employeev42 e WITH (NOLOCK)
INNER JOIN accrualprofile ap
ON e.accrualprflname = ap.name
INNER JOIN accrualprofilemm apm
ON apm.accrualprofileid = ap.accrualprofileid
INNER JOIN accrualrule ar
ON apm.accrualruleid = ar.accrualruleid
INNER JOIN accrualcode ac
ON ac.accrualcodeid = ar.accrualcodeid
LEFT OUTER JOIN vp_accrual va
ON va.accrualcodeid = ar.accrualcodeid
AND e.personid = va.personid
AND accrualtrantype IN (3, 11)
AND va.effectivedate <= @selectionDate
WHERE
ac.NAME IN ('FT PTO','LOC','EPT - 5','PT PTO','EPT')
AND va.DISQUALIFIEDSW != 1
and e.PERSONNUM='00152'
GROUP BY e.personnum,
ac.name
请帮我这个查询
不清楚你在问什么。此外,它被视为粗鲁发布图像链接,抄录您的表格结构,数据样本和预期结果。这很容易帮助你。 – Horaciux
Stackoverflow ID不允许我直接添加图像,因为我需要在stackoverflow.so上有min8mum 10声望点,图像作为链接添加。 –
你没有被要求提供图像。您被要求提供耗材测试数据...根据测试数据创建表格和插入语句以及预期结果...它允许人们创建和测试可能的解决方案。 https://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –