Wie kann ich eine Abfrage wie folgt mit Sequelize erstellen?Sequelize Summe zwischen zwei Spalten in Modell
SELECT name, region, SUM(((COALESCE(base_income, 0) + COALESCE(user_taxes, 0))) AS total_sal FROM user GROUP BY name, region;
Wie kann ich eine Abfrage wie folgt mit Sequelize erstellen?Sequelize Summe zwischen zwei Spalten in Modell
SELECT name, region, SUM(((COALESCE(base_income, 0) + COALESCE(user_taxes, 0))) AS total_sal FROM user GROUP BY name, region;
OK, so folgt die Lösung für die oben genannten RAW SQL-Abfrage.
user.findAll({
attributes: ['name', 'region', [sequelize.fn('SUM', (sequelize.fn('COALESCE', (sequelize.col('base_income')), 0), sequelize.literal('+'), sequelize.fn('COALESCE', (sequelize.col('user_taxes')), 0))), 'total_sal']],
group: ['name', 'name']})
Wir müssen sequelize.literal verwenden, um einen Operator zwischen Abfrage zu platzieren. Hoffe das hilft.
Obwohl es eine alte Post ist, lief ich diese jetzt zweimal an. So würde Ich mag meine Lösung teilen:
user.findAll({
attributes: [ 'name', 'region',
[ sequelize.literal(
'COALESCE(base_income, 0) + COALESCE(user_taxes, 0)'
), 'total_sal'
]
],
group: ['name', 'name']
})
Sie direkt Abfrage abfeuern kann, haben Sie einen Blick doc http://docs.sequelizejs.com/en/latest/docs/raw-queries/ –
@ArifKhan Ja, ich kann rohe Abfrage verwenden, aber das wäre der letzte Ausweg, wenn ein ORM verwendet wird. Was wäre der richtige Weg mit Sequelize-Methoden? –