Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

293
Vistas
Luchando por escribir una consulta SELECT con Knex en Node js que hace un cálculo

Estoy usando PostgresQL y puedo ejecutar la siguiente declaración:

 SELECT id, code, supplier, item, price, price * stockonhand AS stockvalue, stockonhand - stockprocessed AS stockleft FROM products;

Esto funciona en PostgresQL y devuelve todas las columnas que seleccioné y las nuevas columnas calculadas "stockvalue" y "stockleft".

 id | code | supplier | item | price | stockvalue | stockleft ------+-------+----------+---------+-------+------------+----------- 1002 | 15202 | EVADAM | CHZIP-X | 48.24 | 39074.4000 | 670.00 1001 | 15201 | EVADAM | ZIP-X | 42.38 | 50856.0000 | 1050.00 2 | 15204 | EVADAM | LCC-X | 33.45 | 40140.0000 | 1200.00 4 | 15203 | EVADAM | LCC-X | 33.45 | 40140.0000 | 1200.00 5 | 15205 | EVADAM | LOC-X | 36.45 | 36450.0000 | 1000.00

Ahora mi pregunta es ¿cómo convierto el siguiente código para que incluya los cálculos anteriores usando Knex?

 const handleGetProducts = (req, res, db) => { db.select('id', 'supplier', 'code', 'item', 'description', 'price', 'stockonhand', 'stockprocessed').table('products') .then(products => { if (products.length) { res.json(products) console.log(products) } else { res.status(400).json('not found') } }) .catch(err => res.status(400).json('error getting products')) } module.exports = { handleProducts: handleGetProducts };

He buscado por todas partes, pero no puedo encontrar nada que ayude a mi situación.

Gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Una forma es usar raw() . Creo que esto coincide más o menos con la consulta que está tratando de obtener:

 knex.select('id', 'supplier', 'code', 'item', 'price', knex.raw('"price" * "stockonhand" as "stockvalue"'), knex.raw('"stockonhand" - "stockprocessed" as "stockleft"')).table('products')

Aquí está el resultado:

 select "id", "supplier", "code", "item", "price", "price" * "stockonhand" as "stockvalue", "stockonhand" - "stockprocessed" as "stockleft" from "products"

Puede jugar con esta expresión exacta para postgres aquí: QueryLab

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda