我正在使用Adaptive Server Enterprise/15.7/EBF 25127 SMP sp 136/P/x86 _ 64/Enterprise Linux/ase 157 sp 136 x/3955/64位/FBO/周一2015年10月19日19:12:00
我有一个表,包括多个日期和价格的记录,我希望选择最近的日期和价格是最高的或最大的。
对于错误消息,max()函数似乎不起作用,只会返回几十万条记录。当我尝试Row_number()或Rank()OVER(Partition by column name order by column name)时,我在OVER is incorrect附近收到一个语法错误。在读取其他线程时,看起来这在Sybase ASE中是不可用的。
有没有其他方法可以实现这一点?
表中一条记录的示例:
ID TRADE_DATE TRADE_PRICE
B52A 05/12/2016 91
B52A 05/13/2016 85
B52A 05/13/2016 86
B52A 05/16/2016 85
B52A 05/16/2016 90
预期输出(每条记录只有一行,没有重复):
ID TRADE_DATE TRADE_PRICE
B52A 05/16/2016 90
我的代码:
SELECT T1.ID
FROM T1
LEFT JOIN
(SELECT
T2.ID,
T2.TRADE_DATE,
T2.TRADE_PRICE
FROM T2
WHERE ID='B52A')
ON T2.ID=T1.ID
同样,如果我试着做:
SELECT
ID,
MAX(TRADE_DATE),
MAX(TRADE PRICE)
FROM T2
WHERE ID ='B52A'
GROUP BY
ID
ORDER BY
ID
TRADE_DATE
TRADE_PRICE
它选择正确的记录,但重复 5 次:
ID TRADE_DATE TRADE_PRICE
B52A 05/16/2016 90
B52A 05/16/2016 90
B52A 05/16/2016 90
B52A 05/16/2016 90
B52A 05/16/2016 90
SELECT distinct * FROM (SELECT
ID,
MAX(TRADE_DATE) trade_date,
MAX(TRADE PRICE) trade_price
FROM T2
WHERE ID ='B52A'
GROUP BY
ID
)
ORDER BY
ID,
TRADE_DATE,
TRADE_PRICE
不能使用 OVER 语法,因为 SAP/Sybase ASE 数据库不支持它。
您需要手动编写SQL代码。一个例子是:
SELECT
T1.ID, x.max_TRADE_DATE, max(TRADE_PRICE) AS max_TRADE_PRICE
FROM
(
SELECT ID, MAX(TRADE_DATE) AS max_TRADE_DATE
FROM T1 GROUP BY ID
) x
JOIN
T1 on T1.ID = x.ID and T1.TRADE_DATE = x.max_TRADE_DATE
GROUP BY
T1.ID, x.max_TRADE_DATE
本文向大家介绍jQuery UI Library 设置日期选择器的最小和最大日期,包括了jQuery UI Library 设置日期选择器的最小和最大日期的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 我试图一次从一张桌子上得到2行。上周的最小日期时间(今天-7)和最晚的日期(今天)的一个。 我的桌子: 我可以通过以下方式选择上周的数据: 但我只想要第1行和第125行,因为这些是用于计算的行。所以我的问题是: 如何从上一个查询的结果中选择2行(带有MIN和MAX日期)? 问题答案: 您可以使用此: 编辑: 由于两台计算机完全有可能具有相同的值,因此应更新查询以在子句中也包含过滤器。我
问题内容: 我正在尝试制作类似提醒的应用程序。我想允许用户选择不是现在(至少从现在起5分钟)的日期和时间,并且我也想禁止用户选择距离太远的日期- 例如30天。我创建了datePicker和timePicker,使它们在单击按钮时弹出,但是找不到设置最小值和最大值的方法。 问题答案: 试试这个: 但是,您需要检查用户是否选择了今天的日期,并且时间是否小于当前时间条件。
问题内容: 假设有工资表: 我目前正在使用此代码(AutoIT脚本: 因此,如果Hour_number在低小时或高小时之间,那两个查询是完美的。我需要某种查询,它基本上会执行以下操作: 然后将其重复为“默认”,因为找不到该员工。 补充:如果仅通过1个查询未找到$ Employee,是否可以尝试使用“ Default”? 问题答案: 如果仅通过1个查询未找到$ Employee,是否可以尝试使用“
我想在hibernate中选择最大日期,但出现以下错误: Java语言sql。SqlSyntaxerRorexException:ORA-00932:不一致的数据类型:预期的时间戳得到的数字 查询是: 数据库是oracle。数据库中该字段的类型为时间戳(6)
问题内容: 这是我的表结构- 我想清楚地选择所有的数据(以及日期)。由于日期在两个相同的条目之间会有所不同,因此我想选择日期最近的行。我希望得到这样的结果- 我不想要这个- 我正在使用此查询- 但是它只能挑一排。我该如何纠正? 问题答案: 试试这个查询 如果只想使用此查询: SQL字段 如果要查找所有用户的最新日期,请使用此查询 在此查询中,还将包含的数据