none
Tabular por rangos de días de mora a partir de una fecha de vencimiento RRS feed

  • Pregunta

  • SELECT TOP 1000 [Nº de Socio]
          ,[Apellido]
          ,[Nombre]
          ,[Monto]
          ,[Fecha de Pago]
          ,[Comentario]
          ,[Fecha]
      FROM [varias].[dbo].[Cuotas-de-socios]

    Select [Nº de Socio],Count(*) as Cant,
    case when datediff(dd, F.FECHA, GetDate()) < 30 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end dias30,
    case when datediff(dd, F.FECHA, getdate()) between 31 and 45 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end dias45,
    case when datediff(dd, F.FECHA, getdate()) between 46 and 60 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end dias60,
    case when datediff(dd, F.FECHA, getdate()) >60 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end diasM60
    From [varias].[dbo].[Cuotas-de-socios] F
    Group BY F.[Nº de Socio]


    lunes, 23 de abril de 2018 7:18

Respuestas

Todas las respuestas

  • SELECT TOP 1000 [Nº de Socio]
          ,[Apellido]
          ,[Nombre]
          ,[Monto]
          ,[Fecha de Pago]
          ,[Comentario]
          ,[Fecha]
      FROM [varias].[dbo].[Cuotas-de-socios]

    Select [Nº de Socio],Count(*) as Cant,
    case when datediff(dd, F.FECHA, GetDate()) < 30 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end dias30,
    case when datediff(dd, F.FECHA, getdate()) between 31 and 45 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end dias45,
    case when datediff(dd, F.FECHA, getdate()) between 46 and 60 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end dias60,
    case when datediff(dd, F.FECHA, getdate()) >60 then SUM(datediff(dd, F.FECHA, GetDate())) else sum(0) end diasM60
    From [varias].[dbo].[Cuotas-de-socios] F
    Group BY F.[Nº de Socio]


    Msg 8120, Level 16, State 1, Line 2
    Column 'varias.dbo.Cuotas-de-socios.Fecha' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    Requiero Obtener por cada socio la sumatoria de los dias de mora tabulado por rangos

    lunes, 23 de abril de 2018 7:20
  • Trata:

    select
        ...,
        case
        when SUM(datediff(dd, F.FECHA, GetDate())) < 30 then SUM(datediff(dd, F.FECHA, GetDate()))
        else 0
        end dias30,
        ...

    En palabras, sumar los dias transcurridos desde el ultimo pago y luego asignar rango.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    • Marcado como respuesta Huaso de Talca martes, 24 de abril de 2018 1:04
    lunes, 23 de abril de 2018 12:10
  • Gracias, muy buena solucion
    martes, 24 de abril de 2018 1:05