[ Foro de SQL (y MySQL) ]

conocer antiguedad de clientes

27-Sep-2018 22:04
alberto velasquez
1 Respuestas

cordial saludo,
solicito de su colaboración orientar la necesidad que describo, tengo un listado de cliente y requiero saber si en cada mes un clientes es nuevo o no, es decir, si él un cliente (dbo.OINV.CardCode), está en el mes anterior, de ser así colocar una marca "FIDELIZADO", sino (no esa en el mes anterior) colocar una marca "NUEVO"

He realizado la siguiente vista, que me permite saber cuantas facturas por mes tiene el cliente


SELECT TOP 100 PERCENT
Count(SUBSTRING (dbo.OINV.CardCode, 3,10)) AS Cantdoc,  -- cuento cuantos registros tiene cada tercero por mes
SUBSTRING (dbo.OINV.CardCode, 3,10) AS idcliente,
CONVERT (
		VARCHAR(7),
		dbo.OINV.DocDate,
		120) AS FDoc,
DATENAME("MM", dbo.OINV.DocDate) AS NOMBREMES
 
FROM
dbo.OINV
INNER JOIN dbo.OACT ON dbo.OACT.AcctCode = dbo.OINV.CtlAccount
WHERE
dbo.OINV.DocDate >= '2018-01-01'
GROUP BY
dbo.OINV.CardCode,
CONVERT (
		VARCHAR(7),
		dbo.OINV.DocDate,
		120),
DATENAME("MM", dbo.OINV.DocDate)
ORDER BY
dbo.OINV.CardCode, FDoc ASC


Lo que me devuelve
Cantdoc        idcliente        Fdoc     Mes
1        15985344        2018-03            Marzo
1        24320315        2018-04            Abril
1        30396226        2018-08          Agosto
1        30396226        2018-09          Septiembre
1        800039996        2018-01          Enero
1        800039996        2018-02         Febrero
1        800039996        2018-03         Marzo

por favor me guian como puedo complementar para que el resultado sea
Cantdoc        idcliente        Fdoc     Marca
1        15985344        2018-03             NUEVO
1        24320315        2018-04             NUEVO
1        30396226        2018-08           NUEVO
1        30396226        2018-09          FIDELIZADO
1        800039996        2018-01          NUEVO
1        800039996        2018-02          FIDELIZADO
1        800039996        2018-03          FIDELIZADO


02-Oct-2018 10:29
Nacho Cabanes (+84)

No entiendo tu ejemplo. No hay suficiente información. Con los datos que muestras en

1        30396226        2018-08           NUEVO
1        30396226        2018-09          FIDELIZADO

no hay suficiente para saber quién es nuevo y quien no. Falta una segunda fecha con la que comparar.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)