【发布时间】:2014-03-18 20:45:34
【问题描述】:
我对 SQL 有非常基本的了解,但是为了处理大量数据,我需要使用它。这是我的问题:
我有两张表,如下:
table1:
id begin end
100 1998 2013
101 1996 2009
table2:
id date price qtt
100 1996 10 200
100 1999 12 200
101 1997 13 100
101 2013 14 100
我需要做的是删除每个 id 的 date 小于 begin 字段或 date 大于 end 的行。这意味着对于id 101,任何记录的日期都不应早于 1996 年,也不应晚于 2009 年。
所以我的预期结果是:
id date price qtt
100 1999 12 200
101 1997 13 100
效率是一个问题,因为我正在为具有数百万条记录的表执行此操作。我已经为这些表准备了一个 sqlfiddle,这样对你来说更容易。
http://sqlfiddle.com/#!2/66f54f/1
如果这个问题太简单了,我很抱歉,但是搜索了三个小时后,我自己无法解决。提前谢谢!
【问题讨论】:
-
你用的是什么数据库?
-
坦率地说,我不知道。我通过 SSH 访问一个学术数据库,然后远程执行 SAS 脚本,通过它我使用 SQL。所以,我正在通过 SQL 访问 SAS 文件。我不知道如何回答你的问题,我不知道在这个问题中是否仍然适用。
-
“数据库”将是“proc-sql”或“sas”。