Blog CalendarVisitors Statistics![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Blog Archive
|
Common Table ExpressionsYa pasaron unos cuantos años desde mis primeros roses con SQL y actualmente creo que puedo manejar con soltura algunas cosillas monas dentro del mismo.
Recuerdo cuando me pedían algo en el trabajo y yo me la pasaba super entretenido leyendo sobre SQL porque no encontraba la manera de resolver mis problemas, ahora que lo veo creo que tan simple y que solo requería leer un poco las especificaciones del lenguaje, practicar un poco y listo! Ahora que me puse a hacer más consultas encontré algunas cosas monas y las quiero compartir, aunque sea de una por una. Hoy hablaré en este breve post de Common Table Expression: Que tal si tenemos una consulta medio entretenida y queremos unirla con otra que es algo simple pero que si las metemos en una sola consulta ... saz! ... cuando queremos retomar la lógica nos cuesta trabajo, ejemplo. Tenemos reclamos que ver por mes para sacar estadísticas de nuestro servicio.
SELECT Month(FechaAltaReclamo) AS Month ,ReclamoId ,SUM(Monto) AS Monto FROM HistorialReclamo GROUP BY FechaAltaReclamo ,ReclamoId
SELECT Month(FechaPago) AS Month ,ReclamoId ,SUM(Monto) AS Monto FROM HistorialPagos WHERE Estatus = 3 -- 3 es igual a cubierto GROUP BY FechaPago ,ReclamoId
WITH Reclamos(FechaReclamo, ReclamoId, Monto) AS ( SELECT Month(FechaAltaReclamo) AS Month ,ReclamoId ,SUM(Monto) AS Monto FROM HistorialReclamo GROUP BY FechaAltaReclamo ,ReclamoId ) SELECT H.UserName, R.FechaReclamo, R.ReclamoId, R.Monto AS MontoReclamo FROM Reclamos AS R INNER JOIN HistorialPagos AS H ON R.ReclamoId = H.ReclamoId WHERE R.Monto = H.Monto Code It!
Trackback URI: http://es.iver.com.mx/index.php?trackback/149
Leave a Comment
Comment XML feeds: RSS | Atom
FileBrowser |
Recent Comments On Blog