Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: joalbela en 25 Febrero 2012, 16:52 pm



Título: Ayuda con sql server
Publicado por: joalbela en 25 Febrero 2012, 16:52 pm
Buen dia

Me gustaria que me ayudaran con esta consulta en sql server, tengo 2 tablas una llamada clientes que tiene nit, nombre,zona y la otra ventas que tiene numero,fecha,nit, valor total.
Necesito hacer una consulta que me traiga el nombre de la compañia, total de ventas, y ventas en enero febrero mes a mes etc

cliente   total    enero   febrero   marzo   abril   mayo


Título: Re: Ayuda con sql server
Publicado por: HdM en 25 Febrero 2012, 17:04 pm
Buenas.

Tienes que ser más específico y detallar más qué es lo que te está causando problemas en esta consulta. Postea código para poder ver cómo la has planteado y saber qué es lo que está haciendo que no recibas los resultados que esperas. Debes saber cómo funcionan las cláusulas GROUP BY, SUM(), en sql.

Saludos.


Título: Re: Ayuda con sql server
Publicado por: joalbela en 25 Febrero 2012, 17:21 pm

SELECT  C.NOMBRES, ROUND(SUM(V.VALOR_TOTAL),0),
CASE Month(v.fecha) when  '1'  THEN v.valor_total end enero,
CASE Month(v.fecha) when  '2'  THEN v.valor_total end febrero,
CASE Month(v.fecha) when  '3'  THEN v.valor_total end marzo,
CASE Month(v.fecha) when  '4'  THEN v.valor_total end abril,
CASE Month(v.fecha) when  '5'  THEN v.valor_total end mayo,
CASE Month(v.fecha) when  '6'  THEN v.valor_total end junio
FROM CLIENTES C INNER JOIN VENTAS V ON C.NIT=V.NIT
GROUP BY C.NOMBRES,V.FECHA,V.valor_total
ORDER BY 1





Título: Re: Ayuda con sql server
Publicado por: joalbela en 25 Febrero 2012, 17:35 pm
Con esta onsulta si me da solo que me esta mostrando las compañias con cada uno de los valores registrados no un total


SELECT  C.NOMBRES, ROUND(SUM(V.VALOR_TOTAL),0),
CASE Month(v.fecha) when  '1'  THEN v.valor_total end enero,
CASE Month(v.fecha) when  '2'  THEN v.valor_total end febrero,
CASE Month(v.fecha) when  '3'  THEN v.valor_total end marzo,
CASE Month(v.fecha) when  '4'  THEN v.valor_total end abril,
CASE Month(v.fecha) when  '5'  THEN v.valor_total end mayo,
CASE Month(v.fecha) when  '6'  THEN v.valor_total end junio
FROM CLIENTES C INNER JOIN VENTAS V ON C.NIT=V.NIT
GROUP BY C.NOMBRES,V.FECHA,V.valor_total
ORDER BY 1


Título: Re: Ayuda con sql server
Publicado por: HdM en 25 Febrero 2012, 21:12 pm
Buenas.

Pero estás agrupando por fecha, sin formatear a mes.