2017-03-13 1 views
0

Ich versuche Textersetzungen in R zu verwenden, um benutzerdefinierte Daten mit meiner SQL odbc connect Abfrage einzufügen.R Textersetzung in odbc sqlquery

Zum Beispiel könnte ich Datum1 zu 2016-01-31 ändern und die Daten würden automatisch ausgeführt werden. Mit bquote Text Ersatz scheint es jedoch nicht zu funktionieren.

Irgendwelche Ideen?

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) 

Antwort

1

Dies ist ein Job für Paket infuser. Es ermöglicht Ihnen, einen Teil der SQL-Anfrage zu ändern, in diesem Fall 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

hi wie ändern wir die Variablenkennung? Ich denke daran, es so zu ändern, dass es wie ein SAS-Makro mit & variabel aussieht. Irgendwann möchte ich eine Funktion um ihn herum aufbauen –

Verwandte Themen