我的R代码没有从SQL Server

时间:2016-08-10 17:38:31

标签: sql-server r

虽然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")

1 个答案:

答案 0 :(得分:0)

我建议您按照以下步骤操作:

1)您应该确保正确设置了连接字符串,以便与数据库建立正确的连接。 这里有一个很好的解释:short youtube tutorial

2)在R写中:

library(RODBC)   
channel = odbcConnect("The_database_name_your_are_connecting_to")
...
sqlQuery(channel ,"your query here")
close(channel)

我建议你从最简单的查询开始,确定它有效后, 使用更复杂的查询

希望它对你有用,祝你好运!