none
UPDATE A COLUMNA SEGÚN CONDICIÓN RRS feed

  • Pregunta

  • ESTIMADOS BUENAS TARDES,

    TENGO UN PROBLEMA LA CUAL NO ENCUENTRO LA FORMA MAS ADECUADA PARA HACER LO SIGUIENTE,

    SUPONGAMOS QUE ESTA SEA MI TABLA 1, COMO ESTA EN LA IMAGEN.

    EL RESULTADO QUE YO QUIERO ES LO SIGUIENTE; PRIMERO SE TIENE QUE ORDENAR DE MAYOR A MENOR SEGUN EL PRECIO

    LUEGO DE ESO EL QUERY TIENE QUE AGRUPAR Y ACTUALIZAR LA COLUMNA GRUPO, TOMANDO COMO REFERENCIA EL INDICE, ESO QUIERE DECIR QUE TIENE QUE AGRUPAR DE 3 EN 3 PERO TENIENDO LA SIGUIENTE CONDICION.

    OBTENIENDO EL MEJOR PRECIO CON EL INDICE NUMERO 1, LUEGO OBTENIENDO EL MEJOR PRECIO CON EL INDICE NUMERO 2 Y TERCERO OBTENIENDO EL MEJOR PRECIO CON EL INDICE NUMERO 3

    EL RESULTADO TIENE QUE QUEDAR COMO EN LA IMAGEN

    CABE RECALCAR SI NO CUMPLE LA CONDICIÓN DE GRUPO 3 EN 3 TENER EL CAMPO GRUPO CON VALOR NULL

    ESPERO SU APOYO.

    MUCHAS GRACIAS


    martes, 12 de junio de 2018 21:34

Todas las respuestas

  • Hola Oscar Perez:

    No lo veo.

    EL RESULTADO QUE YO QUIERO ES LO SIGUIENTE; PRIMERO SE TIENE QUE ORDENAR DE MAYOR A MENOR SEGUN EL PRECIO

    1. ¿Tu quieres updatear la columna grupo?, porque las updates no ordenan, cambian en función de un criterio, por ejemplo un criterio ordenado, pero no te va a cambiar el orden de la tabla.
    2. ¿También quieres una select que te devuelva esos datos con ese ordenamiento?

    CABE RECALCAR SI NO CUMPLE LA CONDICIÓN DE GRUPO 3 EN 3 TENER EL CAMPO GRUPO CON VALOR NULL

    1. ¿Cual condición?

    Creo que tienes que entender que desde afuera es muy díficl ayudarte, tienes que intentar expresar mejor lo que necesitas. Un saludo

    miércoles, 13 de junio de 2018 9:55
  • Hola.

    Creo que se puede mediante un UPDATE con un INNER JOIN con una Common Table Expression. Si revisas la documentación, particularmente UPDATE (Transact-SQL) y vas al ejemplo E, de pronto por ahí podrás resolverlo.

    Por si no sabes como generar una Common Table Expression, te dejo con la documentación sobre este tema, WITH common_table_expression (Transact-SQL), que no es más que otra manera de obtener un conjunto resultado temporal para trabajarlo en escenarios como el que planteas.

    Intentalo y nos cuentas como te va...

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    miércoles, 13 de junio de 2018 12:53