Matlab Database Toolbox join

1 vue (au cours des 30 derniers jours)
Brian
Brian le 27 Avr 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

Réponse acceptée

the cyclist
the cyclist le 28 Avr 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 commentaires
Brian
Brian le 30 Avr 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 le 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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by