gpt4 book ai didi

SQL 13 个月的交易和数量数据提取每月分割

转载 作者:行者123 更新时间:2023-12-03 06:54:10 25 4
gpt4 key购买 nike

我正在阅读一些较旧的帖子并尝试将相同的逻辑应用于我的问题,我需要提取每月分解的 13 个月的数据,我还想将数据应用于相关标题......任何建议。请参阅下面的代码并收到错误。

SELECT ST.TXDATE, ST.CODE, ST.QUANTITY    
FROM StocTran ST
WHERE ST.TXDATE >= DATEADD(MONTH, -13, CAST(GETDATE() AS DATE))
ORDER BY ST.TXDATE

ERROR: [Elevate Software][DBISAM] DBISAM Engine Error # 11949 SQL parsing error - Expected end of statement but instead found ( in SELECT SQL statement at line 3, column 27 Error Code: 11949

最佳答案

DATEADD 是 MS TransactSQL for Sql Server 中的一个函数。我不知道 DBIsam 是否支持它,并且它没有在 DBIsam 的支持功能列表中列出:

https://www.elevatesoft.com/manual?action=viewtopic&id=dbisam4&product=delphi&version=7&topic=functions

通常,日期函数不能跨不同的 SQL 引擎移植,从该列表中,一种可能是使用 EXTRACT代替功能:

The EXTRACT function returns a specific value from a date, time, or timestamp value. The syntax is as follows:


EXTRACT(extract_value
FROM column_reference or expression)
EXTRACT(extract_value,
column_reference or expression)

Use EXTRACT to return the year, month, week, day of week, day, hours, minutes, seconds, or milliseconds from a date, time, or timestamp column. EXTRACT returns the value for the specified element as an integer.

The extract_value parameter may contain any one of the specifiers: YEAR MONTH WEEK DAYOFWEEK DAYOFYEAR DAY HOUR MINUTE SECOND MSECOND



即使您很着急,我强烈建议您仔细研究该页面。

更新 :来自谷歌搜索 dbisam dateadd看起来 Elevate 对 DATEADD 的等价物没有很好的答案.其中一个热门是这个线程:

https://www.sqlservercentral.com/Forums/Topic173627-169-1.aspx

这提出了一种使用 Delphi 内置日期函数的替代方法(如 IncMonth,我建议您在回答另一个 q 时使用它。基本上,您将计算一系列日期的开始日期和结束日期,然后将它们转换为字符串以构造一个 WHERE 子句,其列日期(来自您的数据库)等于或大于开始日期且小于或等于结束日期。

关于SQL 13 个月的交易和数量数据提取每月分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com