1

好的,所以我有关于 PL/SQL 的数据库。

这是我的sql问题:

SELECT t.AC_NUMBER, t.DATE, a.comment_1, a.comment_2, a.comment_3, a.comment_4
  FROM proddba.cust_info t
       left join proddba.cust_descr a on a.ac_number=t.ac_number
 where a.open_date=(select min(b.open_date) 
                      from proddba.cust_descr b 
                     where b.ac_number=t.ac_number 
                       and b.open_date>=t.date 
                       and b.open_dane<=t.date+7days)

如何动态添加 +7 天日期?

min(b.open_date)其次,如果有两个相同的数据,如何只获得一个日期?我应该使用distinct吗?

(select distinct min(b.open_date) 
   from proddba.cust_descr b 
  where b.ac_number=t.ac_number 
    and b.open_date>=t.date 
    and b.open_dane<=t.date+7days)

如果必须从数据库中获取大约 15000 条记录,这应该可行吗?

此致

4

1 回答 1

1

您可以简单地将天数添加到DATE

t.date + 7

DATE将在in 中增加 7 天t.date(因此将保留时间部分)。

MIN将已经导致子查询返回单个数据值 - 无需添加 aDISTINCT因为它永远不会更改输出。我不确定您试图描述获取多行的结果是什么问题-您是否可能担心外部查询返回具有相同a.open_date值的两行并且您试图确保仅获得一行?

于 2012-12-06T22:20:47.097 回答