2012-01-14 2 views
6

SQLAlchemy를 사용하여 다음 SQL 쿼리를 수행하려면 어떻게해야합니까? det_factura 매핑 된 객체가있는 경우SQLAlchemy를 사용하여 SQL 개수 (*) 필터링

SELECT COUNT (*) 
FROM det_factura 
WHERE company = 31 
    AND date::text LIKE '2011-05% '; 
+0

어떤 SQL을 백엔드를 사용하고 있습니까? – van

답변

6

,이 쿼리를 수행해야합니다

qry = (session.query(func.count(det_factura.id)) 
     .filter(det_factura.company==31) 
     .filter(det_factura.date.like('2010-05%')) 
     ) 

을 그것이 table 인스턴스 인 경우, 아래와 작동합니다 :

qry = select([func.count(det_factura.id)], 
     and_(det_factura.company==31, 
      det_factura.date.like('2010-05%') 
      ) 
     ) 
+0

감사합니다. SQLSoup 나는이 코드를 sqlsoup에 적용하면서 작업하고있다. – leonciokof

+0

음 ... id 필드가없는 경우에는 어떻게해야합니까? 어떻게하면 "count (*)"를 얻을 수 있습니까? select 목록에있는 다른 것들이있을 수 있습니다 (sqlalchemy .count()를 사용할 수 없습니까?). – shaunc

+2

@shaunc :'func.count ('*')'를 사용하면'COUNT (*)'SQL 표현식을 얻을 수 있습니다. – van