SQL - Uso de group by

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Uso de group by

Publicado por Elías (2 intervenciones) el 18/03/2019 17:08:47
Buenos días, programadores:

Tengo que hacer una consulta para extraer un sólo registro por cliente cuando la tabla tiene 2: una para moneda local y otra en moneda extranjera. Funciona como una tarjeta de crédito: el mismo numero de cuenta para ambas monedas.

Tengo la siguiente consulta, pero no me está poniendo la el saldo de la cuenta...por favor, díganme qué estoy haciendo mal.

1
2
3
4
5
6
7
8
9
10
11
select
	b.tarjeta,
	'nombre'=nombre_tarjeta,
	'saldo_C$'=case when moneda='NI' then saldo_actual else 0.00 end,
	'saldo_US$'=case when moneda='DO' then saldo_actual else 0.00 end,
	'dias_mora'=max(dias_mora),
	'fecha'=max(convert(varchar,fecha_otorga,112)),
	'estado'=max(b.estado)
from  saldos a,  tarjetas b, cuentas c
where a.emisor=b.emisor and b.emisor=c.emisor and a.cuenta=b.cuenta and b.cuenta=c.cuenta
group by b.tarjeta,nombre_tarjeta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vega
Val: 187
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Uso de group by

Publicado por Vega (73 intervenciones) el 18/03/2019 17:32:08
Hola,
¿Que motor de sql estas usando? Oracle?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Uso de group by

Publicado por Elías (2 intervenciones) el 18/03/2019 17:33:09
Hola, de nuevo. Encontré una solución. Error de análisis, mal de mi parte. La solución no es muy elegante, pero es funcional.

Gracias de todas maneras.

Saludos,

1
2
3
4
5
6
7
8
9
10
11
12
select
 a.emisor,
 a.cuenta,
 a.tarjeta,
 'nombre'=a.nombre_tarjeta,
 'saldo_CS$'= (select saldo_actual from  saldos where emisor=a.emisor and cuenta=a.cuenta and moneda='NI'),
 'saldo_US$'= (select saldo_actual from  saldos where emisor=a.emisor and cuenta=a.cuenta and moneda='DO'),
 'dias_mora'= (select max (dias_mora) from  saldos where emisor=a.emisor and cuenta=a.cuenta),
 'fecha'=convert(varchar,b.fecha_ot,112),
 a.estado
from  tarjetas a, cuentas b
where a.tarjeta=b.tarjeta_titular
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar