[R] Query an Access database based on a date attribute

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Nov 13 08:11:41 CET 2007


This is a question about SQL, or more precisely, Microsoft's peculiar 
dialect of SQL.  You haven't even mentioned (let alone credited) package 
RODBC which you appear to be using.

In SQL queries you need to quote numeric values if you want them to be 
treated as character.  Why did you quote 'alt-bos' and not '2007-11-20' ? 
As I recall, some DBMSs need date values quoted and some do not, so try 
quoting.

On Mon, 12 Nov 2007, Tudor Bodea wrote:

> Dear useRs,
>
> I would like to query an Access database through R based on a date 
> attribute but, unfortunately, I fail to do so. For example, the table 
> test_table of the test.mdb looks like:
>
>   ID         cd  market competitor         dd price
> 1   1 2007-11-20 atl-bos      delta 2007-11-20   210
> 2   2 2007-11-20 atl-bos      delta 2007-11-21   190
> 3   3 2007-11-20 atl-bos      delta 2007-11-22   180
> 4   4 2007-11-20 atl-bos     united 2007-11-20   205
> 5   5 2007-11-20 atl-bos     united 2007-11-21   195
> 6   6 2007-11-20 atl-bos     united 2007-11-22   175
> 7   7 2007-11-20 atl-sfa      delta 2007-11-20   350
> 8   8 2007-11-20 atl-sfa      delta 2007-11-21   320
> 9   9 2007-11-20 atl-sfa      delta 2007-11-22   300
> 10 10 2007-11-20 atl-sfa         aa 2007-11-20   340
> 11 11 2007-11-20 atl-sfa         aa 2007-11-21   320
> 12 12 2007-11-20 atl-sfa         aa 2007-11-22   300
>
> In this context, I try to get all the records for which market is 
> atl-bos, competitor is delta and dd is 2007-11-20 (first record above). 
> To do this I used
>
>> # channel <- odbcConnectAccess("test.mdb")
>> res <- sqlQuery(channel, "select * from test_table where market = 'atl-bos'
> and competitor = 'delta' and dd = 2007-11-20")
>
> but the result seems to be incorrect.
>
>> res
> [1] ID         cd         market     competitor dd         price
> <0 rows> (or 0-length row.names)
>
> Does any of you know what it is going on? I suspect that the last 
> expression in the select statement is not executed/interpreted correctly 
> and, as a consequence, the query leads to the above empty set.
>
> Thank you.
>
> Tudor
>
> --
> Tudor Dan Bodea
> Georgia Institute of Technology
> School of Civil and Environmental Engineering
> Web: http://www.prism.gatech.edu/~gtg757i

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list