Matlab Database Toolbox join

1 Ansicht (letzte 30 Tage)
Brian
Brian am 27 Apr. 2012
I am wrting a SQL query to pull a list of securities from a table that I am connecting to via ODBC connection. What I'd like to do is filter this query (specifically the FundTicker field) by the list of tickers that I have in my cell variable called "Test". I am wondering if I can even do this. Will it ever see a variable as another table that I can join with? Or do I need to do something different with my variable before the "like" statement will workj. Right now my Test variable is below. Does this need to be a character variable?
Test = {'AAAGX'; 'FNEVX'};
Query SQL
e = exec(conn,'SELECT ALL MSTARFUNDID,ASOFDATE,FUNDTICKER FROM MSTAR.FUNDHEADER WHERE ASOFDATE = ''2004-12-31'' AND FUNDTICKER IN ' Test);
Thanks for the help, Brian

Akzeptierte Antwort

the cyclist
the cyclist am 28 Apr. 2012
I don't know of a way to access the contents of a cell array as part of a query. I had a similar issue in which I wanted to access the contents of a numerical array, but the only way I could think to do it was to construct the string:
numericArray = [1 2 3];
preliminaryString = sprintf('%d,',numericArray);
stringList = ['(',preliminaryString(1:end-1),')'];
This gives the string '(1,2,3)' as result, which I then use in my query.
I'm afraid you'll have to do the equivalent for your cell.
  3 Kommentare
Brian
Brian am 30 Apr. 2012
I tried to create the IN filter manually and am still having difficulty getting the query to accept. Would you mind assisting me with that?
Brian
Brian am 3 Mai 2012
I ended up creating a for loop but using the same ideas that you have here. I couldn't get sprintf to work proprely with text. Here is my ending code.
PGQryFilt = ['''' MonthlyPG{1} ''''];
for i = 1:length(MonthlyPG)
PGQryFilt = [PGQryFilt ', ' '''' MonthlyPG{i} ''''];
end
Thanks,
Brian

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by