none
Row Number DESC RRS feed

  • Pregunta

  • Buenas tardes,

    Como puedo hacer para que la siguiente consulta muestre el valor del row number en orden descendente:

    SELECT (ROW_NUMBER() OVER(ORDER BY TM.ciddocum02 ASC )) AS R, YEAR(TD.cfecha) AS Año, MONTH(TD.cfecha) AS Mes,
    	SUM(CONVERT(DECIMAL(18,2), CASE TMO.cnombrem01
    	WHEN 'Peso Mexicano' THEN TM.cneto/TC.cimporte
    	WHEN 'Dólar Americano' THEN TM.cneto
    	ELSE 0 END)) AS Dolares
    FROM MGW10010 TM FULL OUTER JOIN
         MGW10008 TD ON TM.ciddocum01 = TD.ciddocum01 FULL OUTER JOIN
    	 MGW10005 TP ON TM.cidprodu01 = TP.cidprodu01 FULL OUTER JOIN
    	 MGW10034 TMO ON TD.cidmoneda = TMO.cidmoneda FULL OUTER JOIN
    	 MGW10035 TC ON TD.cfecha = TC.cfecha FULL OUTER JOIN
    	 MGW10001 TA ON TD.cidagente = TA.cidagente FULL OUTER JOIN
             mgw10002 TCL ON TD.cidclien01 = TCL.cidclien01
    WHERE TP.ctipopro01 =1 AND TC.cidmoneda = 2 AND TM.ciddocum02 = 2 AND TD.cfecha BETWEEN '2016-01-01' AND GETDATE() AND TD.cseriedo01 <>'RA'
    GROUP BY YEAR(TD.cfecha), MONTH(TD.cfecha), TM.ciddocum02
    ORDER BY YEAR(TD.cfecha) ASC, MONTH(TD.cfecha) ASC, R DESC

    Ya que muestra los valores de la siguiente forma:

    Gracias.

    Saludos.

    jueves, 20 de abril de 2017 19:04

Respuestas

  • Solo era ordenar en descendente el año, mes y R para que asi muestre los primeros 12 al inicio.

    SELECT (ROW_NUMBER() OVER(ORDER BY TM.ciddocum02 DESC )) AS R, YEAR(TD.cfecha) AS Año, MONTH(TD.cfecha) AS Mes,
    	SUM(CONVERT(DECIMAL(18,2), CASE TMO.cnombrem01
    	WHEN 'Peso Mexicano' THEN TM.cneto/TC.cimporte
    	WHEN 'Dólar Americano' THEN TM.cneto
    	ELSE 0 END)) AS Dolares
    FROM MGW10010 TM FULL OUTER JOIN
         MGW10008 TD ON TM.ciddocum01 = TD.ciddocum01 FULL OUTER JOIN
    	 MGW10005 TP ON TM.cidprodu01 = TP.cidprodu01 FULL OUTER JOIN
    	 MGW10034 TMO ON TD.cidmoneda = TMO.cidmoneda FULL OUTER JOIN
    	 MGW10035 TC ON TD.cfecha = TC.cfecha FULL OUTER JOIN
    	 MGW10001 TA ON TD.cidagente = TA.cidagente FULL OUTER JOIN
             mgw10002 TCL ON TD.cidclien01 = TCL.cidclien01
    WHERE TP.ctipopro01 =1 AND TC.cidmoneda = 2 AND TD.cfecha BETWEEN '2016-01-01' AND GETDATE() AND TD.cseriedo01 <>'RA'
    GROUP BY YEAR(TD.cfecha), MONTH(TD.cfecha), TM.ciddocum02
    ORDER BY YEAR(TD.cfecha) DESC, MONTH(TD.cfecha) DESC, R DESC

    Gracias.

    Saludos.

    jueves, 20 de abril de 2017 23:21

Todas las respuestas

  • Cambiandolo a DESC sigue apareciendo con el mismo orden.

    jueves, 20 de abril de 2017 19:47
  • Prueba con el <g class="gr_ gr_3 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" data-gr-id="3" id="3">siguiente</g> <g class="gr_ gr_4 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" data-gr-id="4" id="4">cambio</g>

    SELECT (ROW_NUMBER() OVER(ORDER BY TM.ciddocum02 DESC )) AS R, YEAR(TD.cfecha) AS Año, MONTH(TD.cfecha) AS Mes,
    	SUM(CONVERT(DECIMAL(18,2), CASE TMO.cnombrem01
    	WHEN 'Peso Mexicano' THEN TM.cneto/TC.cimporte
    	WHEN 'Dólar Americano' THEN TM.cneto
    	ELSE 0 END)) AS Dolares
    FROM MGW10010 TM FULL OUTER JOIN
         MGW10008 TD ON TM.ciddocum01 = TD.ciddocum01 FULL OUTER JOIN
    	 MGW10005 TP ON TM.cidprodu01 = TP.cidprodu01 FULL OUTER JOIN
    	 MGW10034 TMO ON TD.cidmoneda = TMO.cidmoneda FULL OUTER JOIN
    	 MGW10035 TC ON TD.cfecha = TC.cfecha FULL OUTER JOIN
    	 MGW10001 TA ON TD.cidagente = TA.cidagente FULL OUTER JOIN
             mgw10002 TCL ON TD.cidclien01 = TCL.cidclien01
    WHERE TP.ctipopro01 =1 AND TC.cidmoneda = 2 AND TM.ciddocum02 = 2 AND TD.cfecha BETWEEN '2016-01-01' AND GETDATE() AND TD.cseriedo01 <>'RA'
    GROUP BY YEAR(TD.cfecha), MONTH(TD.cfecha), TM.ciddocum02
    ORDER BY R,YEAR(TD.cfecha) ASC, MONTH(TD.cfecha) ASC


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    jueves, 20 de abril de 2017 20:06
  • Eduardo060888,

    ¿El criterio de orden es el año y el mes?, de ser así ejecuta el siguiente ejemplo y sobre el resultado danos tu feed-back:

    SELECT
        Año, Mes,
        ROW_NUMBER() OVER(ORDER BY Año DESC, Mes DESC) AS R
    FROM
        (VALUES (2016, 1), (2016, 2), (2016, 3),
        (2017, 1), (2017, 2), (2017, 3)) T (Año, Mes)
    ORDER BY
        R DESC;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 20 de abril de 2017 20:17
  • Solo era ordenar en descendente el año, mes y R para que asi muestre los primeros 12 al inicio.

    SELECT (ROW_NUMBER() OVER(ORDER BY TM.ciddocum02 DESC )) AS R, YEAR(TD.cfecha) AS Año, MONTH(TD.cfecha) AS Mes,
    	SUM(CONVERT(DECIMAL(18,2), CASE TMO.cnombrem01
    	WHEN 'Peso Mexicano' THEN TM.cneto/TC.cimporte
    	WHEN 'Dólar Americano' THEN TM.cneto
    	ELSE 0 END)) AS Dolares
    FROM MGW10010 TM FULL OUTER JOIN
         MGW10008 TD ON TM.ciddocum01 = TD.ciddocum01 FULL OUTER JOIN
    	 MGW10005 TP ON TM.cidprodu01 = TP.cidprodu01 FULL OUTER JOIN
    	 MGW10034 TMO ON TD.cidmoneda = TMO.cidmoneda FULL OUTER JOIN
    	 MGW10035 TC ON TD.cfecha = TC.cfecha FULL OUTER JOIN
    	 MGW10001 TA ON TD.cidagente = TA.cidagente FULL OUTER JOIN
             mgw10002 TCL ON TD.cidclien01 = TCL.cidclien01
    WHERE TP.ctipopro01 =1 AND TC.cidmoneda = 2 AND TD.cfecha BETWEEN '2016-01-01' AND GETDATE() AND TD.cseriedo01 <>'RA'
    GROUP BY YEAR(TD.cfecha), MONTH(TD.cfecha), TM.ciddocum02
    ORDER BY YEAR(TD.cfecha) DESC, MONTH(TD.cfecha) DESC, R DESC

    Gracias.

    Saludos.

    jueves, 20 de abril de 2017 23:21