Shiny: Реактивные запросы SQL (вывод 1-го запроса как ввод 2-го запроса)

Возможно ли иметь 2 SQL-запроса и принимать выходные данные 1-го из них как входные данные 2-го?

Что я имел в виду, я хотел бы использовать первый запрос SQL, может быть, что-то вроде этого:

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

Поэтому я мог бы получить список уникальных значений из столбца X. Далее я хотел бы использовать этот список в качестве выбора в 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))

Спасибо за советы

0 ответов

Другие вопросы по тегам