I am modifying Julia code that I did not write myself. I have worked very little in Julia. I've concatenated a string to create a SQL Query that returns a single integer value from the database. I want to use the returned value in the next sql string. However, the value returned from the initial SQL Select statement is a 1x1 dataframe. My assumption is I need to assign returned value to a integer variable that can be used in the subsequent SQL String.
import Dates
using ODBC
using Dataframes
dt = Dates.today()
db = ODBC.DSN("mydsn","myuser","mypasswd")
sqlstr = string("SELECT empid FROM employees WHERE name = ","'","John Doe","'"," AND startdate < ","'",dt,"'",")
relempid = ODBC.query(db, sqlstr)
Based on the returned empid I want to run additional SQL Query that will return a dataframe from the database.
sqlstr2 = string("SELECT ticketId, shortdescription FROM tickets WHERE empid = ","'",relempid,"'",")
df = ODBC.query(db, sqlstr2)
ODBC.ODBCError("API.SQLExecDirect(stmt, query) failed; return code: -1 => SQL_ERROR
However, this results in the above SQL error as relempid is itself a 1x1 dataframe.
I'm sure this is probably simple enough, but I can't manage to get it working.
CodePudding user response:
I understand you have a DataFrame
like this:
julia> using DataFrames
julia> df = DataFrame(a=111)
1×1 DataFrame
Row │ a
│ Int64
─────┼───────
1 │ 111
In that case simply note that DataFrames
s can be indexed just like matrices:
julia> df[1,1]
111
Of course you could also reference the value by column name:
julia> df.a[1]
111
julia> df[1, :a]
111