2017-03-13 14 views
0

Rのテキスト代替を使用して、SQL odbc connectクエリでカスタム日付を入力しようとしています。odbc sqlqueryのRテキスト置換

たとえば、date1を2016-01-31に変更すると、データが自動的に実行されます。しかし、bquoteのテキストの置換を使用して、それは動作していないようです....

任意のアイデア?

library("rodbc") 
date1 <- c("2016-12-31") 

myconn <- odbcConnect("edwPROD",uid="username",pwd="BBBBB") 
data1 <- sqlQuery(myconn," 
SELECT a.* 
    FROM (SELECT id 
       ,status_code     
       ,rate_plan 
       ,publication 
       ,active_count 
       FROM prod_view.fct_active 
       WHERE snap_start_date<=bquote(.date1) 
       ) AS a 
") 
odbcClose(myconn) 

答えて

1

これは、パッケージinfuserのジョブです。これにより、SQLリクエストの一部(この場合はdate1)を変更することができます。

library(infuser) 
date1 <- c("2016-12-31") 

sql_query_template <- "SELECT a.* 
    FROM (SELECT id 
       ,status_code 
       ,rate_plan 
       ,publication 
       ,active_count 
       FROM prod_view.fct_active 
       WHERE snap_start_date<='{{date1}}' 
       ) AS a;" 
sql_query <-infuse(sql_query_template, date1=date1) 

myconn <- odbcConnect("edwPROD",uid="username",pwd="BBBBB") 
data1 <- sqlQuery(myconn,sql_query) 
odbcClose(myconn) 
+0

どのように変数識別子を変更するのですか?私は変数を使ってSASマクロのように見えるように変更することを考えています。最終的に私はそれの周りに関数を構築したいと思います –