简单的SQL查询:根据日期检索值?

时间:2014-07-03 21:18:38

标签: sql filemaker

我正在撞墙。需要帮助构建一个非常简单的SQL查询。这是一张小桌子“USt”,看起来像这样:

id Datum Steuersatz Steuersatz%
1 1983-07-01 2 .07
2 1998-04-01 1 .16
3 2007-01-01 1 .19

它包含在另一个税率取代之前保持有效的税率(Steuersatz%)。因此,它可以随时扩展:

4 2015-01-01 2 .09

我有日期(Datum)和Steuersatz(值1或2)。现在,问题是,什么是正确的Steuersatz%值?

这是我到目前为止所做的:

SELECT \"Steuersatz%\" FROM USt
WHERE Steuersatz = 1
AND …

我需要在FileMaker中使用ExecuteSQL()语句,其中只支持一些基本的SQL语法。

示例结果:

.16 <= Steuersatz = 1 , Date = 2006-12-31
.07 <= Steuersatz = 2 , Date = 2006-12-31
.07 <= Steuersatz = 2 , Date = 2014-12-31

非常感谢您的帮助!

加里

2 个答案:

答案 0 :(得分:0)

您需要使用相关子查询(我希望它在FileMaker中得到支持)

select Steuersatz% 
from USt
where Steuersatz = 1
and Datum = (select max(Datum)
             from USt
             where Steuersatz = 1
               and Datum <= your_date)  

答案 1 :(得分:0)

这就像FileMaker函数一样:

Let ( [ _sts = 1 ;
        _d = Date ( 12 ; 31 ; 2014 ) ;
        _query = "
        SELECT \"Steuersatz%\" FROM USt
        WHERE Steuersatz = ?
        AND Datum = (   SELECT MAX(Datum)
                    FROM USt
                    WHERE Steuersatz = ?
                    AND Datum <= ?
                    )
        " ;
        _% = ExecuteSQL ( _query ; "" ; "" ; _sts ; _sts ; _d ) ;
    ] ;
    _%
)
相关问题