none
Seleccionar los registros validos de un nivel concreto (subiendo de nivel si el registro no es valido) RRS feed

  • Pregunta

  • Buenos días,

    vengo con un problema que tengo a ver si me pueden ayudar.

    En una tabla, tengo una serie de registros, los cuales por una parte tienen, un campo "valido" y otro "nivel".

    A grandes rasgos, lo que me gustaría hacer serie una consulta que recorra la tabla seleccionando los registros de un mismo nivel (nivel = 1 por ejemplo). En el caso de que uno de estos registros no fuese valido (valido =0), pasaria a seleccionar los de un nivel superior que esten seguidos a este (por ejemplo nivel 2).

    Ejemplo:

    ID---Valor---Nivel---Valido

    1---- a--------1--------1

    2----b--------2--------1

    3----c--------1--------1

    4----d--------2--------0

    5----e--------1--------0

    6----f --------2--------1

    7----g--------1--------0

    8----h--------2--------0

    9----i--------2--------1

    En este caso, el resultado sería el siguiente:

    ID--Valor-Nivel--Valido

    1----a------1-------1

    3----c------1-------1

    6----f------2-------1

    9---- i------2-------1

    Queda decir que es una consulta de "SQL Server".

    Gracias de antemano,

    Un saludo.


    Mikel García
    Pamplona, Navarra (España)
    No es mas rico el que mas tiene si no el que menos necesita - Agustin de Hipona



    • Editado Mikel García jueves, 3 de mayo de 2018 6:23 Se descuadraban las tablas jaja
    jueves, 3 de mayo de 2018 6:16

Todas las respuestas

  • Hola, no entiendo muy bien con lo de seleccionar los de un mismo nivel, por lo que veo en lo que quieres obtener seria tan sencillo como :

    Select Id, Valor , Nivel ,Valido from Mitabla
    where Valido=1
    order by Nivel,Id,Valor

    En el order lo que hará es sacar primero todos los del Nivel 1, luego el 2 etc, y ordenado por "ID" o por "Valor" lo que prefieras, o por ambos.


    JM Claudio Dba/Consultor SQL/BI Pasiona - Spain

    jueves, 3 de mayo de 2018 10:51