Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/07/2013, 10:16
mdt_sagexrt
 
Fecha de Ingreso: julio-2013
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Obtener el valor de un campo que es el máximo en otro campo (soy novato)

Parece que no atino... perdona, pero te lo pongo más amplio. La tabla no tiene solo esos campos, te copio aquí un ejemplo de la tabla, porque no me cabe todo el mensaje si no.

CUR_RATE_ID NATURE XRATE-DATE CUR_CODE REF_CUR_CODE RATE_TYPE GIVE_RATE ASK_RATE ROWVERSION
2424 0 2013-02-28 00:00:00.000 USD EUR 0 1,308404 1,308404 <Datos binarios>
2425 0 2013-01-31 00:00:00.000 USD EUR 0 1,352393 1,352393 <Datos binarios>
2426 0 2012-12-31 00:00:00.000 USD EUR 0 1,321807 1,321807 <Datos binarios>
2496 0 2007-10-11 00:00:00.000 USD EUR 0 1,333641 1,333641 <Datos binarios>
2497 0 2007-10-01 00:00:00.000 USD EUR 0 1,452401 1,452401 <Datos binarios>
2498 0 2007-09-27 00:00:00.000 USD EUR 0 1,398498 1,398498 <Datos binarios>
504 0 2009-03-09 00:00:00.000 DZD EUR 3 0 0 <Datos binarios>
843 0 2010-05-31 00:00:00.000 JPY EUR 12 0 0 <Datos binarios>
942 0 2010-07-01 00:00:00.000 JPY EUR 0 112,07 112,07 <Datos binarios>
905 0 2010-06-01 00:00:00.000 JPY EUR 9 0 0 <Datos binarios>
906 0 2010-06-01 00:00:00.000 JPY EUR 12 0 0 <Datos binarios>
985 0 2010-07-31 00:00:00.000 JPY EUR 1 0 0 <Datos binarios>
986 0 2010-07-31 00:00:00.000 JPY EUR 2 0 0 <Datos binarios>
1642 1 2011-05-01 00:00:00.000 CAD EUR 5 1,393 1,393 <Datos binarios>
1643 1 2011-06-01 00:00:00.000 CAD EUR 6 1,393 1,393 <Datos binarios>
1644 1 2011-07-01 00:00:00.000 CAD EUR 7 1,384 1,384 <Datos binarios>
1645 1 2011-08-01 00:00:00.000 CAD EUR 8 1,384 1,384 <Datos binarios>
1646 1 2011-09-01 00:00:00.000 CAD EUR 9 1,384 1,384 <Datos binarios>
1823 1 2013-01-01 00:00:00.000 CAD EUR 1 1,21 1,21 <Datos binarios>

1875 0 2000-01-01 00:00:00.000 CDF EUR 9 0 0 <Datos binarios>
1876 0 2000-01-01 00:00:00.000 CDF EUR 12 0 0 <Datos binarios>
1891 0 2000-01-01 00:00:00.000 CVE EUR 0 110,65 110,65 <Datos binarios>
1892 0 2000-01-01 00:00:00.000 CVE EUR 1 0 0 <Datos binarios>
1893 0 2000-01-01 00:00:00.000 CVE EUR 2 0 0 <Datos binarios>
1894 0 2000-01-01 00:00:00.000 CVE EUR 3 0 0 <Datos binarios>
1895 0 2000-01-01 00:00:00.000 CVE EUR 6 0 0 <Datos binarios>
1896 0 2000-01-01 00:00:00.000 CVE EUR 9 0 0 <Datos binarios>
1897 0 2000-01-01 00:00:00.000 CVE EUR 12 0 0 <Datos binarios>
1898 0 2000-01-01 00:00:00.000 CYP EUR 0 0,58527 0,58527 <Datos binarios>
1899 0 2000-01-01 00:00:00.000 CYP EUR 1 0 0 <Datos binarios>
2565 0 2011-07-01 00:00:00.000 ARS EUR 0 5,955217 5,955217 <Datos binarios>
2566 0 2011-06-01 00:00:00.000 ARS EUR 0 5,964808 5,964808 <Datos binarios>
2567 0 2011-05-01 00:00:00.000 ARS EUR 0 5,875095 5,875095 <Datos binarios>
2594 0 2011-08-01 00:00:00.000 MXN EUR 0 17,727353 17,727353 <Datos binarios>
2595 0 2011-07-01 00:00:00.000 MXN EUR 0 16,894746 16,894746 <Datos binarios>
2596 0 2011-06-01 00:00:00.000 MXN EUR 0 16,986581 16,986581 <Datos binarios>
2597 0 2011-05-01 00:00:00.000 MXN EUR 0 16,655563 16,655563 <Datos binarios>
2598 0 2011-04-01 00:00:00.000 MXN EUR 0 17,021277 17,021277 <Datos binarios>
2599 0 2011-03-01 00:00:00.000 MXN EUR 0 16,852039 16,852039 <Datos binarios>
2600 0 2011-02-01 00:00:00.000 MXN EUR 0 16,708438 16,708438 <Datos binarios>
2601 0 2011-01-01 00:00:00.000 MXN EUR 0 16,600266 16,600266 <Datos binarios>
2602 0 2010-09-30 00:00:00.000 MXN EUR 0 17,171509 17,171509 <Datos binarios>
2603 0 2010-09-01 00:00:00.000 MXN EUR 0 17,171509 17,171509 <Datos binarios>
2604 0 2010-08-31 00:00:00.000 MXN EUR 0 16,739203 16,739203 <Datos binarios>
2605 0 2010-08-01 00:00:00.000 MXN EUR 0 16,739203 16,739203 <Datos binarios>
2606 0 2010-07-31 00:00:00.000 MXN EUR 0 16,533025 16,533025 <Datos binarios>
2607 0 2010-07-01 00:00:00.000 MXN EUR 0 16,533025 16,533025 <Datos binarios>
2608 0 2010-06-30 00:00:00.000 MXN EUR 0 15,836316 15,836316 <Datos binarios>
2609 0 2010-06-01 00:00:00.000 MXN EUR 0 15,836316 15,836316 <Datos binarios>
2610 0 2010-05-31 00:00:00.000 MXN EUR 0 15,914444 15,914444 <Datos binarios>
2611 0 2010-05-01 00:00:00.000 MXN EUR 0 15,914444 15,914444 <Datos binarios>
2612 0 2010-04-30 00:00:00.000 MXN EUR 0 16,366612 16,366612 <Datos binarios>
2613 0 2010-03-31 00:00:00.000 MXN EUR 0 16,705088 16,705088 <Datos binarios>
2614 0 2010-02-28 00:00:00.000 MXN EUR 0 17,410683 17,410683 <Datos binarios>
2615 0 2010-01-31 00:00:00.000 MXN EUR 0 18,153433 18,153433 <Datos binarios>
2616 0 2009-07-09 00:00:00.000 MXN EUR 0 18,542555 18,542555 <Datos binarios>


Los campos son:

CUR_RATE_ID (IGNORARLO)
NATURE (IGNORARLO)
XRATE_DATE (FECHA, CAMPO A MAXIMIZAR)
CUR_CODE (CODIGO DE LA DIVISA)
REF_CUR_CODE (IGNORARLO, DIVISA DE REFERENCIA)
RATE_TYPE (IGNORARLO)
GIVE_RATE (COTIZACION)
ASK_RATE (IGNORARLO)
ROWVERSION (IGNORARLO)

No he puesto todo esto antes porque he pensado que no hacía falta. Si me he equivocado, lo siento.

Poniendo tu código sale esto (pongo solo un trozo):

SELECT * FROM CURRENCY_RATES where XRATE_DATE in (select MAX(XRATE_DATE) from CURRENCY_RATES group by CUR_CODE)


CUR_RATE_ID NATURE XRATE-DATE CUR_CODE REF_CUR_CODE RATE_TYPE GIVE_RATE ASK_RATE ROWVERSION
2439 0 2013-03-31 00:00:00.000 USD EUR 0 1.282.051 1.282.051 0x0000000002E1352B
2441 0 2011-11-01 00:00:00.000 USD EUR 0 1.344.601 1.344.601 0x0000000002E1352D
2468 0 2010-02-12 00:00:00.000 USD EUR 0 1.346.234 1.346.234 0x0000000002E13548
2474 0 2009-06-30 00:00:00.000 USD EUR 0 1.389.429 1.389.429 0x0000000002E1354E
2483 0 2008-10-22 00:00:00.000 USD EUR 0 1.324.679 1.324.679 0x0000000002E13557
2484 0 2008-10-20 00:00:00.000 USD EUR 0 1.340.393 1.340.393 0x0000000002E13558
1648 1 2011-11-01 00:00:00.000 CAD EUR 11 1.396.000 1.396.000 0x0000000001F71AE7
1690 0 2011-11-01 00:00:00.000 JPY EUR 0 104.370.000 104.370.000 0x0000000001F808D4
1691 0 2011-11-01 00:00:00.000 JPY EUR 1 0.000000 0.000000 0x0000000001F808D5
1692 0 2011-11-01 00:00:00.000 JPY EUR 2 0.000000 0.000000 0x0000000001F808D6
1693 0 2011-11-01 00:00:00.000 JPY EUR 3 0.000000 0.000000 0x0000000001F808D7
1694 0 2011-11-01 00:00:00.000 JPY EUR 6 0.000000 0.000000 0x0000000001F808D8
1695 0 2011-11-01 00:00:00.000 JPY EUR 9 0.000000 0.000000 0x0000000001F808D9
1696 0 2011-11-01 00:00:00.000 JPY EUR 12 0.000000 0.000000 0x0000000001F808DA
2561 0 2011-11-01 00:00:00.000 ARS EUR 0 5.755.826 5.755.826 0x0000000002E135A5
2586 0 2009-06-30 00:00:00.000 ARS EUR 0 5.322.546 5.322.546 0x0000000002E135BE
2589 0 2009-04-16 00:00:00.000 INR EUR 0 66.006.601 66.006.601 0x0000000002E135C1
2591 0 2011-11-01 00:00:00.000 MXN EUR 0 18.319.716 18.363.449 0x0000000002E135C3


Quitando los 0 de Give_rate y poniendo solo los campos que necesito en el select sale esto:

SELECT XRATE_DATE, CUR_CODE, GIVE_RATE FROM CURRENCY_RATES where XRATE_DATE in (select MAX(XRATE_DATE) FROM CURRENCY_RATES group by CUR_CODE) AND GIVE_RATE <>0


XRATE_DATE CUR_CODE GIVE_RATE
2013-03-31 00:00:00.000 USD 1.282.051
2011-11-01 00:00:00.000 USD 1.344.601
2010-02-12 00:00:00.000 USD 1.346.234
2009-06-30 00:00:00.000 USD 1.389.429
2008-10-22 00:00:00.000 USD 1.324.679
2008-10-20 00:00:00.000 USD 1.340.393
2010-02-12 00:00:00.000 CHF 1.423.710
2008-08-25 00:00:00.000 GBP 0.786543
2009-06-30 00:00:00.000 USS 1.389.429
2011-11-01 00:00:00.000 PEN 3.643.810
2008-10-22 00:00:00.000 ETB 12.776.800
2008-11-06 00:00:00.000 CDF 655.957.000
2009-02-25 00:00:00.000 XAF 655.957.000
2009-02-25 00:00:00.000 CYP 0.585270
2009-02-25 00:00:00.000 CAD 1.591.610
2009-03-09 00:00:00.000 DZD 89.232.680
2008-10-22 00:00:00.000 CVE 110.650.000
2013-12-01 00:00:00.000 CAD 1.230.000
2008-10-20 00:00:00.000 AUD 1.943.295
2009-02-25 00:00:00.000 MRO 323.206.206
2008-10-22 00:00:00.000 MRO 0.003184
2011-11-01 00:00:00.000 CLP 693.962.526
2011-11-01 00:00:00.000 CAD 1.396.000
2011-11-01 00:00:00.000 JPY 104.370.000
2011-11-01 00:00:00.000 ARS 5.755.826
2009-06-30 00:00:00.000 ARS 5.322.546
2009-04-16 00:00:00.000 INR 66.006.601
2011-11-01 00:00:00.000 MXN 18.319.716


Dime si necesitas algo más.