none
if o case en consulta RRS feed

  • Pregunta

  • with Resultados as (
    -- el código de su consulta, sin la cláusula ORDER BY
    SELECT
        ROW_NUMBER() OVER(ORDER BY e.Fecha_Inicio ASC) AS RowN,
        A.Num_Estudiante, A.Termino,sum (D.Creditos) as Creditos,C.Descripcion,e.Fecha_Inicio,
        e.Fecha_Fin,e.Fecha_Fin_2,
        (f.Apellido_Paterno + ' ' + f.Apellido_materno + ' ' + f.nombre + ' ' + f.Inicial) as nombre,
        g.Descripcion as departamento,

        AVG(CASE A.Nota_Final
              WHEN 'A' THEN 4.0
              WHEN 'B' THEN 3.0
              WHEN 'C' THEN 2.0
              WHEN 'D' THEN 1.0
              WHEN 'F' THEN 0.0
           END) AS [Promedio],

        sum(Case A.Nota_Final
        when 'A' then 4 * d.Creditos
        when 'B' then 3 * d.Creditos
        when 'C' then 2 * d.creditos
        when 'D' then 1 * d.Creditos
        end) [PH]

           FROM
        Notas_pro_eva_bol_Trans A
    left join Matriculas_Tabla B on A.termino=b.termino and A.Num_Estudiante=B.Num_Estudiante
    left join Cursos_Tabla C on B.Curso=C.Num_Curso
    left join Clases_Tabla d on a.Codigo_Clase=d.Codigo_Clase 
    left join Termino_Academico_Tabla E on A.Termino=E.Termino
    left join Estudiantes_Tabla F on a.Num_Estudiante=F.Num_Estudiante
    left join Departamentos_Academicos_Tabla g on b.Departamento=g.Num_Departamento
    where a.Num_Estudiante='126851975' and c.Num_Curso ='6'
    GROUP BY
        A.Num_Estudiante, A.Termino,b.Semestre,A.Termino,C.Descripcion,e.Fecha_Inicio,
        e.Fecha_Fin,e.Fecha_Fin_2,
        f.Apellido_Paterno,f.Apellido_materno,f.nombre,f.Inicial,g.Descripcion
    )
    --
    SELECT RowN,Promedio,Creditos,
    PH, sum (PH) over (order by RowN) as Suma_PH
    from Resultados
    order by RowN;

    Tengo la siguiente consulta que me da los siguientes resultados

    RowN Promedio Creditos PH Suma_PH

    1 3.600000 12 44 44
    2 3.000000 12 35 79
    3 NULL 12 NULL 79
    4 4.000000 12 48 127
    5 3.600000 12 44 171

    Lo que quiero es que en la columna de los creditos si Promedio es NULL me Ponga un valor 0, lo importante es que creditos

    es la suma de los valores que vienen sumados de otra tabla osea utilizar un if o un case tambien es importante recordar

    que promedio no viene directamente de la tabla sino que viene de un case. Gracias

    RowN Promedio Creditos PH Suma_PH

    1 3.600000 12 44 44
    2 3.000000 12 35 79
    3 NULL 0 NULL 79
    4 4.000000 12 48 127
    5 3.600000 12 44 171

    jueves, 21 de noviembre de 2019 15:03

Respuestas