根据日期条件访问查询计算字段

时间:2016-01-23 08:17:36

标签: ms-access database-design

这是我在堆栈溢出时的第一个问题。我想询问是否有任何方法可以在Access查询中创建一个基于其他两个字段的字段?例如。在下面的例子中,我想在查询中创建一个字段 ReqDate ,如果产品>将返回 DueDate + 1年 90 DueDate + 6个月如果产品< 90

Example

2 个答案:

答案 0 :(得分:1)

由于这是Access,查询可能如下所示:

Select 
    *, 
    DueDate, 
    products, 
    IIf(products > 90, DateAdd("yyyy", 1, DueDate), DateAdd("m", 6, DueDate)) As ReqDate 
From 
    YourTable;

或者,如果你愿意,可以更紧一些:

Select 
    *, 
    DueDate, 
    products, 
    DateAdd("m", 6 * (Abs(products > 90) + 1), DueDate) As ReqDate 
From 
    YourTable;

答案 1 :(得分:0)

要添加日期,您可以使用sql server的DATEADD功能。

select ID, DueDate, products , 
(CASE 
    WHEN products > 90
        THEN DATEADD(yy, 1, DueDate)
        ELSE DATEADD(mm, 6, DueDate)

END) as ReqDate from table;

链接:

http://www.w3schools.com/sql/func_dateadd.asp

How do I perform an IF...THEN in an SQL SELECT?