Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Obtener el valor de un campo que es el máximo en otro campo (soy novato)

Estas en el tema de Obtener el valor de un campo que es el máximo en otro campo (soy novato) en el foro de SQL Server en Foros del Web. Hola a todos. Soy bastante nuevo con esto, lo que sé de bases de datos es por aprender lo que necesitaba, así que tengo muchas ...
  #1 (permalink)  
Antiguo 24/07/2013, 05:40
 
Fecha de Ingreso: julio-2013
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Obtener el valor de un campo que es el máximo en otro campo (soy novato)

Hola a todos.

Soy bastante nuevo con esto, lo que sé de bases de datos es por aprender lo que necesitaba, así que tengo muchas lagunas.

Tengo una tabla con tres campos:

DIVISA / FECHA COTIZ / COTIZACION

Necesito obtener la Cotización para cada divisa a la última fecha. Hasta ahora lo máximo que he conseguido es que me diga la fecha máxima de cada divisa con esto:
Código SQL:
Ver original
  1. SELECT CUR_CODE AS [CODIGO_DIVISA.COTIZACION], MAX(xrate_date) AS [FECHA_COTIZA.COTIZACION]
  2.     FROM CURRENCY_RATES
  3.     GROUP BY CUR_CODE
  4.     ORDER BY CUR_CODE

Con lo que los datos que me salen son algo así:

USD 01/01/2013
CAD 05/05/2013

Lo que yo necesito es que además me ponga la cotización a esa fecha concreta, algo así:

USD 01/01/2013 1,3456
CAD 05/05/2013 1,2786

¿Alguna idea?

Gracias!!
  #2 (permalink)  
Antiguo 24/07/2013, 07:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener el valor de un campo que es el máximo en otro campo (soy novato)

podrias poner un ejemplo de tus datos??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 24/07/2013, 08:00
 
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)

Cita:
Iniciado por Libras Ver Mensaje
podrias poner un ejemplo de tus datos??
Ejemplo:

FECHA________________DIVISA__COTIZACION
2013-02-28 00:00:00.000 USD 1,308404
2013-01-31 00:00:00.000 USD 1,352393
2012-12-31 00:00:00.000 USD 1,321807
2012-11-30 00:00:00.000 USD 1,296664
2012-10-31 00:00:00.000 USD 1,293678
2012-09-30 00:00:00.000 USD 1,286041
2012-08-31 00:00:00.000 USD 1,253196
2007-11-15 00:00:00.000 CHF 1,623943
2007-09-18 00:00:00.000 CHF 1,624439
2000-01-01 00:00:00.000 CHF 1,423710
2008-08-25 00:00:00.000 GBP 0,786543
2008-06-23 00:00:00.000 GBP 0,782001
2008-03-18 00:00:00.000 GBP 0,772225
2007-09-17 00:00:00.000 GBP 0,681176
2007-06-25 00:00:00.000 GBP 0,665476
2000-01-01 00:00:00.000 GBP 0,786543
  #4 (permalink)  
Antiguo 24/07/2013, 08:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener el valor de un campo que es el máximo en otro campo (soy novato)

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. fecha datetime,
  4. divisa VARCHAR(20),
  5. cotizacion INT
  6. )
  7.  
  8. INSERT INTO #temp VALUES ('2013-28-02 00:00:00.000',    'USD',  1308404)
  9. INSERT INTO #temp VALUES ('2013-31-01 00:00:00.000',    'USD',  1352393)
  10. INSERT INTO #temp VALUES ('2012-31-12 00:00:00.000',    'USD',  1321807)
  11. INSERT INTO #temp VALUES ('2012-30-11 00:00:00.000',    'USD',  1296664)
  12. INSERT INTO #temp VALUES ('2012-31-10 00:00:00.000',    'USD',  1293678)
  13. INSERT INTO #temp VALUES ('2012-30-09 00:00:00.000',    'USD',  1286041)
  14. INSERT INTO #temp VALUES ('2012-31-08 00:00:00.000',    'USD',  1253196)
  15. INSERT INTO #temp VALUES ('2007-15-11 00:00:00.000',    'CHF',  1623943)
  16. INSERT INTO #temp VALUES ('2007-18-09 00:00:00.000',    'CHF',  1624439)
  17. INSERT INTO #temp VALUES ('2000-01-01 00:00:00.000',    'CHF',  1423710)
  18. INSERT INTO #temp VALUES ('2008-25-08 00:00:00.000',    'GBP',  0786543)
  19.  
  20.  
  21. SELECT * FROM #temp WHERE fecha IN (SELECT MAX(fecha) FROM #temp GROUP BY divisa)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 24/07/2013, 08:56
 
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)

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. fecha datetime,
  4. divisa VARCHAR(20),
  5. cotizacion INT
  6. )
  7.  
  8. INSERT INTO #temp VALUES ('2013-28-02 00:00:00.000',    'USD',  1308404)
  9. INSERT INTO #temp VALUES ('2013-31-01 00:00:00.000',    'USD',  1352393)
  10. INSERT INTO #temp VALUES ('2012-31-12 00:00:00.000',    'USD',  1321807)
  11. INSERT INTO #temp VALUES ('2012-30-11 00:00:00.000',    'USD',  1296664)
  12. INSERT INTO #temp VALUES ('2012-31-10 00:00:00.000',    'USD',  1293678)
  13. INSERT INTO #temp VALUES ('2012-30-09 00:00:00.000',    'USD',  1286041)
  14. INSERT INTO #temp VALUES ('2012-31-08 00:00:00.000',    'USD',  1253196)
  15. INSERT INTO #temp VALUES ('2007-15-11 00:00:00.000',    'CHF',  1623943)
  16. INSERT INTO #temp VALUES ('2007-18-09 00:00:00.000',    'CHF',  1624439)
  17. INSERT INTO #temp VALUES ('2000-01-01 00:00:00.000',    'CHF',  1423710)
  18. INSERT INTO #temp VALUES ('2008-25-08 00:00:00.000',    'GBP',  0786543)
  19.  
  20.  
  21. SELECT * FROM #temp WHERE fecha IN (SELECT MAX(fecha) FROM #temp GROUP BY divisa)
Muchas gracias, pero no me vale, por varias razones.

1) No puedo crear tablas, es algo que está excluido como posibilidad.
2) La tabla en la que están los datos se actualiza diariamente. Tiene que ser una regla general que me valga siempre.

Por eso el código que yo puse al principio, porque filtra los datos pero no crea nada nuevo y es una regla general.

El resultado tendría que ser con los tres campos, mostrando por divisa la última fecha de cotización y el valor de cotización a esa fecha.
  #6 (permalink)  
Antiguo 24/07/2013, 09:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener el valor de un campo que es el máximo en otro campo (soy novato)

a ver vamos por partes......

1.-Te estoy poniendo un ejemplo en una tabla temporal porque no tengo tus tablas ni los valores de la misma (que supongo puedes crear) para que te des una idea del resultado espero que apliques la logica con tus datos
2.-Si sustituyes mi query con tu tabla puede ser que te lleves una sorpresa ;)

Código SQL:
Ver original
  1. SELECT CUR_CODE AS [CODIGO_DIVISA.COTIZACION], xrate_date AS
  2. [FECHA_COTIZA.COTIZACION]
  3.     FROM CURRENCY_RATES
  4. WHERE xrate_date IN (SELECT MAX(xrate_date) FROM CURRENCY_RATES
  5.  
  6.     GROUP BY CUR_CODE)
  7.     ORDER BY CUR_CODE


saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 24/07/2013, 09:37
 
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)

Cita:
Iniciado por Libras Ver Mensaje
a ver vamos por partes......

1.-Te estoy poniendo un ejemplo en una tabla temporal porque no tengo tus tablas ni los valores de la misma (que supongo puedes crear) para que te des una idea del resultado espero que apliques la logica con tus datos
2.-Si sustituyes mi query con tu tabla puede ser que te lleves una sorpresa ;)

Código SQL:
Ver original
  1. SELECT CUR_CODE AS [CODIGO_DIVISA.COTIZACION], xrate_date AS
  2. [FECHA_COTIZA.COTIZACION]
  3.     FROM CURRENCY_RATES
  4. WHERE xrate_date IN (SELECT MAX(xrate_date) FROM CURRENCY_RATES
  5.  
  6.     GROUP BY CUR_CODE)
  7.     ORDER BY CUR_CODE


saludos!
Hola, muchas gracias por tu ayuda. Tiene buena pinta pero no me da solo un valor por divisa.

A lo mejor me he explicado mal antes. Si tengo tres divisas, cada una con una cotización diaria (fecha de la cotización es un campo y cotización es otro), tengo tres campos. El código que me pones solo usa dos.

Lo que necesito es que me ponga el valor de cada divisa en la fecha más grande. Por ejemplo, si tengo USD y CAD:

ORIGINAL

DIVISA____FECHA______COTIZACION
USD______01/01/2013__1,35857
USD______01/02/2013__1,35877
USD______01/03/2013__1,40000
CAD______01/02/2013__2,00000
CAD______05/03/2013__2,10900
CAD______02/01/2013__1,99000

OBJETIVO

DIVISA____FECHA______COTIZACION
USD______01/03/2013__1,40000
CAD______05/03/2013__2,10900

Con el código que he puesto antes llego hasta aquí:

CONSEGUIDO HASTA AHORA

DIVISA____FECHA
USD______01/03/2013
CAD______05/03/2013

Pero tengo que conseguir añadir el campo cotización, que no es más que el valor del USD o del CAD a esa fecha.
  #8 (permalink)  
Antiguo 24/07/2013, 09:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener el valor de un campo que es el máximo en otro campo (soy novato)

a ver probaste el codigo que te puse en donde viene la tabla temporal? probe el codigo y el resultado es el siguiente:

2013-02-28 00:00:00.000 USD 1308404
2007-11-15 00:00:00.000 CHF 1623943
2008-08-25 00:00:00.000 GBP 786543

que es lo que necesitas no? el query como lo estoy haciendo es que solo regrese el maximo valor de una fecha por divisa, que es lo que quieres no?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 24/07/2013, 10:16
 
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.
  #10 (permalink)  
Antiguo 24/07/2013, 10:28
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener el valor de un campo que es el máximo en otro campo (soy novato)

yap i got it :P

prueba con esto :)
Código SQL:
Ver original
  1. SELECT XRATE_DATE, CUR_CODE, GIVE_RATE FROM CURRENCY_RATES WHERE CONVERT(VARCHAR(20),XRATE_DATE) + '|' + cur_code  IN (SELECT CONVERT(VARCHAR(20),MAX(XRATE_DATE)) + '|' + cur_code FROM CURRENCY_RATES GROUP BY CUR_CODE) AND GIVE_RATE <>0

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 24/07/2013, 10:33
 
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)

Cita:
Iniciado por Libras Ver Mensaje
yap i got it :P

prueba con esto :)
Código SQL:
Ver original
  1. SELECT XRATE_DATE, CUR_CODE, GIVE_RATE FROM CURRENCY_RATES WHERE CONVERT(VARCHAR(20),XRATE_DATE) + '|' + cur_code  IN (SELECT CONVERT(VARCHAR(20),MAX(XRATE_DATE)) + '|' + cur_code FROM CURRENCY_RATES GROUP BY CUR_CODE) AND GIVE_RATE <>0

saludos!
Muchas gracias!!

Funciona perfecto.

Etiquetas: campo, select, tabla, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:01.