Sql 如果记录基于日期范围存在于另一个表中,是否从一个表中选择最后日期?

Sql 如果记录基于日期范围存在于另一个表中,是否从一个表中选择最后日期?,sql,Sql,我正试图收集任何记录,是落后的付款,并希望这样做在一个查询 这是获取上次付款时间的查询: SELECT t1.trans_code, t1.date, t1.balance, t1.amount FROM trans T1 WHERE t1.date = (SELECT max(date) FROM trans T2 WHERE T1.fileno = T2.fileno) AND T1.trans_code = 'PAY' ORDER BY fileno

我正试图收集任何记录,是落后的付款,并希望这样做在一个查询

这是获取上次付款时间的查询:

SELECT t1.trans_code, t1.date, t1.balance, t1.amount
FROM trans T1
WHERE t1.date = 
    (SELECT max(date)
     FROM  trans T2
     WHERE T1.fileno = T2.fileno)
  AND T1.trans_code = 'PAY'
ORDER BY fileno
这是获取候选列表的查询:

SELECT d.fileno, d.date, d.days, d.enddate, 
d.todo, m.def_fname, m.def_lname, a.addr, a.city, a.state, a.zip
FROM address AS a,
    diary AS d,
    main AS m
WHERE (m.fileno = d.fileno
         AND m.fileno = a.fileno) 
  AND (a.addrcode ='def'
         AND d.initials = 'PAY' 
         AND d.date >= {08-21-2014} 
         AND d.date <= {9-21-2014}) 
ORDER BY m.fileno
选择d.fileno、d.date、d.days、d.enddate、,
d、 todo,m.def_fname,m.def_lname,a.addr,a.city,a.state,a.zip
从地址作为,
日记作为d,
主AS m
其中(m.fileno=d.fileno
和m.fileno=a.fileno)
和(a.addrcode='def'
d.首字母=支付
和d.日期>={08-21-2014}
和d.date请尝试以下方法:

SELECT
      d.fileno
    , d.date
    , d.days
    , d.enddate
    , d.todo
    , m.def_fname
    , m.def_lname
    , a.addr
    , a.city
    , a.state
    , a.zip
FROM address AS a
      INNER JOIN main AS m
                  ON a.fileno = m.fileno
      INNER JOIN diary AS d
                  ON m.fileno = d.fileno
WHERE a.addrcode = 'def'
      AND d.initials = 'PAY'
      AND d.date >= '2014-08-21'
      AND d.date <= '2014-09-21'

      --  if no record exists after the "from" date above 
      AND NOT EXISTS (
                        SELECT
                              NULL
                        FROM trans
                        WHERE trans.fileno = a.fileno
                              AND trans.trans_code = 'PAY'
                              AND trans.date > '2014-08-21'
                    )
ORDER BY
      m.fileno
选择
d、 文件号
,d.日期
,d.天
,d.enddate
,d.todo
,m.def_fname
,m.def_lname
,a.地址
,a.城市
,a.州
,a.zip
从地址作为
内连接主管道,如m
在a.fileno=m.fileno上
内部连接日志为d
在m.fileno=d.fileno上
其中a.addrcode='def'
d.首字母=支付
和d.date>=“2014-08-21”
和d.日期“2014-08-21”
)
订购人
m、 文件号
注意:我使用了标准的SQL连接语法,以前的“first”查询现在被修改(相当多)为
不存在的条件。此查询不需要聚合,它只是查找在提供的日期之后是否存在付款


哦,有些人更喜欢在这些现有查询中使用
selectnull
,但是
select1
甚至
select*
都可以作为备选方案。

请问数据库的
品牌是什么?MySQL?神谕SQL Server?其他的?非常有用。我正在使用foxpro并尽我所能运行查询,无论是报表编写器还是将DBF表转换为MSSQL或MYSQL。你的回答很有帮助。谢谢