es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Filtro diésel de óxido usando fecha de inicio y final con una sola columna

Estoy utilizando diesel SQL para recuperar los datos de la tabla Postgres. A continuación se muestra la estructura de mi tabla. Quiero unir la tabla de empleados y cuentas y recuperar datos desde la fecha de inicio hasta las fechas de finalización seleccionadas por el usuario. Con una sola columna created_at utilizando el user_id.

Tabla de Empleados

id_empleado nombre_empleado correo_empleado
1 ABC abc@mail.com
2 xyz xyz@mail.com

Tabla de Cuentas

cuenta id_empleado saldo_cuenta fecha_creación
1 1 2000 22/10/2021
2 2 5000 01/09/2021
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para unir las tablas de empleado y cuentas y obtener datos desde la fecha de inicio hasta las fechas de fin seleccionadas por el usuario, se puede utilizar la siguiente consulta SQL utilizando Diesel:

    use diesel::prelude::*;
    
    let start_date = "2021-01-01";
    let end_date = "2021-12-31";
    let user_id = 1;
    
    let results = employee::table
        .inner_join(account::table)
        .select((employee::employee_id, employee::employee_name, account::account_balance))
        .filter(employee::employee_id.eq(account::employee_id))
        .filter(account::created_at.ge(start_date))
        .filter(account::created_at.le(end_date))
        .filter(account::user_id.eq(user_id))
        .load::<(i32, String, i32)>(&connection)?;
    

    Esta consulta selecciona el id del empleado, el nombre y el saldo de la cuenta. Une las tablas de empleado y cuenta basadas en el id del empleado, filtra los resultados para incluir solo aquellos con fechas de creación entre las fechas de inicio y fin seleccionadas por el usuario y restringe los resultados para incluir solo aquellos con el user_id especificado. Finalmente, carga los resultados en una tupla de tres valores para cada fila devuelta: el id del empleado, el nombre y el saldo de la cuenta.

Comments are closed.