【发布时间】:2016-08-10 17:38:31
【问题描述】:
虽然 R 上使用的普通 Select 语句正在获取数据,但我无法在以下查询中使用 SQL 获取数据: SQL 部分正在 SQL Server 2008 上运行。另外,我正在使用 RStudio 有什么建议吗?
qf<-sqlQuery(mycon,"USE MDM_STAT
+ DECLARE @RUNMONTH INT;
+ DECLARE @RUNYEAR INT;
+ DECLARE @PERIOD INT;
+ DECLARE @FISCALRUNYEAR INT;
+ DECLARE @FISCALRUNYEAR_BEGIN INT;
+ SET @RUNMONTH=MONTH(GETDATE());
+ SET @RUNYEAR=YEAR(GETDATE());
+ SET @PERIOD=
+ CASE
+ WHEN @RUNMONTH>3 THEN (@RUNMONTH-3)
+ ELSE 9+@RUNMONTH
+ END
+ ;
+ SET @FISCALRUNYEAR=
+ CASE
+ WHEN @RUNMONTH>3 THEN @RUNYEAR
+ ELSE @RUNYEAR-1
+ END
+ ;
+ SET @FISCALRUNYEAR_BEGIN=
+ CASE
+ WHEN @PERIOD=12 THEN @FISCALRUNYEAR
+ ELSE @FISCALRUNYEAR-1
+ END
+ ;
+
+ select * from dbo.TEMP_CUST_OPERATING_PROFIT OP
+ where OP.Sales_Year=@FISCALRUNYEAR
+ AND OP.PERIOD<=@PERIOD
+ UNION
+ select * from dbo.TEMP_CUST_OPERATING_PROFIT OP
+ where OP.Sales_Year=@FISCALRUNYEAR_BEGIN
+ AND OP.PERIOD>@PERIOD")
【问题讨论】:
-
您需要
SET NOCOUNT ON;作为 SQL 中的第一条语句。 -
@nrussell 使用该命令,如果我使用 SET NOCOUNT ON,我会收到以下错误:> qf [1] "42000 195 [Microsoft][SQL Server Native Client 10.0][SQL Server]' No' 不是公认的 SET 选项。” [2] "[RODBC] 错误:无法执行 SQLExecDirect
-
@nrussell.. 使用 SET NOCOUNT ON 时出现以下错误; > qf [1] "42000 195 [Microsoft][SQL Server Native Client 10.0][SQL Server]'No' 不是可识别的 SET 选项。" [2] "[RODBC] 错误:无法执行 SQLExecDirect
-
已经很晚了,但是,如果我有这样的查询,我肯定会创建一个存储过程来代替。
标签: sql-server r