SQL语句每月付款检查

时间:2015-01-06 09:58:20

标签: sql sqlite

我有一个关于健身房管理的项目,我想查看每月付款。

例如,我想查看会员上次付款的时间,付款日期是30天,以及他的状态是否有效。

这是我的代码,但需要修复。

SELECT * FROM (
               SELECT 
               pi.FighterID, 
               FName, 
               LName, 
               Convert(varchar(20), 
               PaymentDay,1), 
               PaymentDescr,
               PaymentAmount, 
               Active,
               ROW_NUMBER() OVER (PARTITION BY pi.FighterID ORDER BY PaymentDay DESC) rn
                        FROM 
                          FightersInfo fi LEFT JOIN 
                          PaymentInfo pi ON pi.FighterID = fi.FighterID
                        WHERE 
                           NOT EXISTS (SELECT * FROM PaymentInfo WHERE FighterID = fi.FighterID
                                                                                     AND DATEDIFF(day, PaymentDay, GETDATE()) <= 30 )
                                                                  AND Active =1) t
                                                            WHERE rn = 1

这只返回第一个成员。如果我删除WHERE rn =1,则会返回所有付款。我只想要每个成员的最后一次付款。

0 个答案:

没有答案