2010-10-19 5 views
4

quelqu'un sait comment puis-je faire si le comptage dans l'alchimie SQL commesqlalchemy COUNT et SI

COUN(IF(table_row = 1 AND table_row2 =2),1,0) 

je fais quelque chose comme ça,

func.COUNT(func.IF((TransactionMessage.tm_read==0 and TransactionMessage.tm_type==1),1,0)).label('t_message_count'), 

Mais sqlalchemy faire 2 séparé si avec TransactionMesssage.tm_read, et TransactinMessage.tm_type

Pourriez-vous m'aider à résoudre le problème?

Répondre

9

Je n'ai pas l'environnement à tester, mais très probablement, vous devez utiliser l'expression sqlalchemy.sql.expression.and_:

from sqlalchemy.sql.expression import and_ 
... 
func.COUNT(func.IF(and_(TransactionMessage.tm_read == 0, 
         TransactionMessage.tm_type == 1), 1, 0) 
      ).label('t_message_count'), 
+0

Merci de l'aide, ça marche! – gummmibear

+0

Merci pour ça. il est non documenté dans le site SQLAlchemy. – fccoelho