【发布时间】:2014-03-14 14:43:56
【问题描述】:
我有一个文件,其中包含 CENT、YEAR 和 WEEK 列(所有整数字段)
YEAR 是 2 位数的年份。 CENT 是一个世纪指标,0 表示 = 2000 年。WEEK 是 2 位数的周,即 1 - 52
我正在尝试在以下之间选择记录:
- 起价:1
- 从年份:13
- 从第 45 周开始
- 到美分:1
- 至年份:14
- 至周:12
所以从 2013 年第 45 周到 2014 年第 12 周(含)。
为了举例,假设文件包含从第 13 年第 1 周到第 14 年第 52 周每周的 1 条记录,因此:
- 美分 = 1,年 = 13,周 = 1
- 美分 = 1,年 = 13,周 = 2
- 美分 = 1,年 = 13,周 = 3
- ...
- ...
- ...
- 美分 = 1,年 = 13,周 = 52
- 美分 = 1,年 = 14,周 = 1
- ...
- ...
- ...
- 美分 = 1,年 = 14,周 = 52
但是,该文件中也可能有 1999 年的记录,内容如下:
- 美分 = 0,年 = 99,周 = 1
- 美分 = 0,年 = 99,周 = 2
- 美分 = 0,年 = 99,周 = 3
- ...
- ...
- ...
- 美分 = 0,年 = 99,周 = 52
我确实知道如何实现这一点,但 SQL 很长(而且可能效率不高),有人知道速记方法吗?
我们有世纪指标的原因是遗留的 iSeries 文件:)
我只需要一个
SELECT * FROM FILENAME WHERE (*** CENT, YEAR & WEEK are between the two sets of Cent/Year/Week ***)
谢谢
【问题讨论】:
-
你能提供更详细的信息吗?架构?
-
我想知道我还能提供什么其他信息 - 我只是在做一个 Select * 其中 CENT、YEAR、WEEK 介于 From 和 To cent/year/weeks 之间
标签: sql