I've got a SQL query I am trying to convert over into sqlalchemy,
however I just can't suss out the correlate and exists part of
sqlalchemy. My query is:

SELECT m_date,sensor_id,m_value,d_report_hour
  FROM multi_obs mo
  WHERE
    m_date >= '2011-03-23T00:00:00' and m_date < '2011-03-23T24:00:00'
AND
    sensor_id = 4644 AND
    EXISTS (SELECT d_report_hour
      FROM multi_obs
      WHERE
       m_date >= '2011-03-23T00:00:00' AND m_date <
'2011-03-23T24:00:00' AND
       sensor_id=518 and
       mo.d_report_hour=d_report_hour)
  ORDER BY sensor_id ASC, d_report_hour ASC;

I've got my multi_obs table already in an object in sqlalchemy. I am
not sure how to get the "mo" correlation working inside the EXISTS
subquery. I cobbled up this:

matchDatesQ = qaqc.db.session.query(multi_obs).\
                filter(multi_obs.m_date >= beginDate).\
                filter(multi_obs.m_date < endDate).\
                filter(multi_obs.sensor_id == nnSensorId).\
                filter(multi_obs.d_report_hour == mo.d_report_hour).\
                filter(multi_obs.d_top_of_hour == 1).\
                correlate(multi_obs).\
                subquery()
recs = qaqc.db.session.query(multi_obs).\
                  correlate('mo').\
                  filter(multi_obs.m_date >= beginDate).\
                  filter(multi_obs.m_date < endDate).\
                  filter(multi_obs.sensor_id == sensorId).\
                  filter(multi_obs.d_top_of_hour == 1).\
                  filter(exists(matchDatesQ)).\
                  order_by(multi_obs.m_date.asc()).all()

however, I get errors in the matchesDateQ query about the "mo" not
being defined. I understand why that is, I just am not sure how to go
about getting this to work.

Any tips/hints are greatly appreciated.

Dan

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to