闪亮:反应式SQL查询(第一个查询的输出作为第二个查询的输入)

时间:2016-02-12 07:56:59

标签: sql r shiny roracle

是否可以有2个SQL查询,并将第1个输出作为第2个输入?

我的意思是,我想使用第一个SQL查询,也许像这样smthg?:

rs <- dbSendQuery(con, "Select distinct X From K.Tabelle order by X asc")
data <- fetch(rs)

因此,我可以从列X获得uniqe值的列表。此外,我想将此列表用作selectInput("select1",...) shiny窗口小部件中的一个选项(如果我也可以选择获取所有值,这将在第二个/最后一个查询中进一步使用:

query <- reactive( sprintf("select * from K.Tabelle",
                               " where", input$tablename, "=", input$select1, sep="")

有可能吗?我不知道我应该把第一个查询放在哪里?在服务器端也是如此?

我的代码:

library(ROracle)
library(shiny)

get_data <- 
  function(query){
    on.exit(dbDisconnect(con)) ## important to close connection
    con <- dbConnect(dbDriver("Oracle"),"xx",username="user",password="pwd")
    dbGetQuery(con,query)
  }

server <- shinyServer(
  function(input, output) {

    query <-  reactive( sprintf("select * from K.Tabelle",
                               " where", input$tablename, "=", input$select1, sep="")
    ## simply  displaying reactive inputs
    output$table <- renderTable(
     get_data(query())
    )
  })

ui_panel <- 
  tabPanel("Test",
           sidebarLayout(
             sidebarPanel(
             ),
             mainPanel(
               tableOutput("table")
             )
           )
  )


ui <- shinyUI(navbarPage("Test",ui_panel))

runApp(list(ui=ui,server=server))

感谢tipps

0 个答案:

没有答案