2016-02-19 3 views
0

Я пытаюсь сделать следующее полу-сырец запрос knex:Knex сырье запрос не работает PostgreSQL

knex.raw('select sum(invoice_price * quantity) from "localhost:3000".order_item').where({cart_session: 'some_session'}).then(function(data) { 
     console.log(data.rows[0].sum); 
}); 

Однако, я получаю ошибку: knex.raw(...).where is not a function.

Может кто-нибудь помочь?

Заранее благодарен!

ответ

2

Я не думаю, что вы можете использовать raw таким образом, он обычно проходит в том месте, где вы обычно используете построитель схемы. Также не похоже, что вы можете делать raw в предложении sum. Это, кажется, делать то, что вы хотите с помощью raw внутри select:

knex('order_item') 
    .select(knex.raw('sum(invoice_price * quantity)')) 
    .where({cart_session: 'some_session'}) 

Это дает следующий SQL:

select sum(invoice_price * quantity) from "order_item" where "cart_session" = 'some_session' 
Смежные вопросы