【发布时间】:2014-08-18 17:21:45
【问题描述】:
我正在尝试每天从数据库表中提取每个 Id 的最新条目,其中数据库使用 Sybase SQL,编写查询的报告语言是 Oracle SQL。我已经尝试在本网站其他地方发布的 SQL 代码之后对查询进行建模,但它会提取除 max() 之外的其他日期和时间值。我怀疑原因是我使用的某些字段是通过转换或字符串处理获得的。
这里是查询:
Select
substring(x.Id, 1, datalength(x.Id) - datalength(x.TimeAndAction)) as 'Identification',
x.City,
x.Date,
max (Convert(Varchar(15), x.UTCTime, 108)) as 'MaxTime'
from db_table x
where x.Date >= 20140401
and x.Date <= 20140403
and x.City in ('LONDON', 'NEW_YORK', 'SHANGHAI', 'TOKYO')
group by x.Id, x.City, x.Date
(注意:Id 包含 Location 作为其字符串的一部分)
问题是查询的输出中也包含最近的时间(即不需要的数据)。我该如何解决这个问题?
【问题讨论】:
-
“数据库是 Sybase SQL 并且编写查询的报告语言是 Oracle SQL”没有任何意义。您不能在 Sybase 数据库上运行 Oracle SQL。你真正使用的是什么?甲骨文还是赛贝斯?您问题中的 SQL 绝对不适用于 Oracle。
-
查询在 Sybase DB 上。所以我会使用 Sybase。
-
Sybase 拥有 3 个具有不同语法/功能的数据库(ASE、ASA、IQ);)
标签: sql sybase string-parsing