Как извлечь результаты из sql в Nodejs

1

Я новичок в SQL, используя nodejs, я использую knex raw для запуска sql-запросов, я пытаюсь добавить два столбца

это мой код

db.raw("SELECT SUM('column1') + SUM('column2') FROM 'sales' AS 'total'")
 .then(result => console.log(result[0]))

если я запускаю это, я получаю это в консоли

 [RowDataPacket {
    'SUM('column1') + SUM('column2')': 33458338.169500016 } ]

Я ожидал получить

 [RowDataPacket {
    'total': 33458338.169500016 } ]

Но, поскольку это не имеет значения, что это имя, я хочу только число, поэтому я попробовал это

db.raw("SELECT SUM('column1') + SUM('column2') FROM 'sales' AS 'total'")
 .then(result => console.log(result[0]['SUM('column1') + SUM('column2')']))

Я получаю undefined в консоли

Как получить общее количество?

Теги:
knex.js

2 ответа

0

Вы должны использовать

SELECT SUM('column1') + SUM('column2') AS 'total' FROM 'sales'

это решит вашу первую часть, и поскольку ваш результат result[0] все еще показывает массив, вы можете использовать result[0][0].total

  • 0
    Я попробовал это, он все еще дает тот же результат
  • 0
    обновил ответ, кажется из ваших данных, result[0] - массив
0

Почему бы не это:

db.('sales').sum({ total: ['column1', 'column2'] })
  • 0
    что-то вроде этого "knex ('users'). sum ({sum: ['products', 'orders']})", я пробовал "db ('sales'). sum ({total: ['column1', ' column2 ']}) "но это также дает ошибку синтаксиса SQL
  • 0
    Какова структура вашей таблицы и в чем ошибка?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню