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

Como se resuelve estA Consulta

Estas en el tema de Como se resuelve estA Consulta en el foro de Bases de Datos General en Foros del Web. Hola Agradezco de antemano su ayuda, estoy comenzando con slq, necesito resolver una consulta que me parece complicada. que tiene 3 tablas de un comercio ...
  #1 (permalink)  
Antiguo 16/11/2009, 21:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 68
Antigüedad: 15 años, 4 meses
Puntos: 0
Como se resuelve estA Consulta

Hola

Agradezco de antemano su ayuda, estoy comenzando con slq, necesito resolver una consulta que me parece complicada. que tiene 3 tablas de un comercio seria.

La tabla Cheques con las columnas Id, fecha, importe y CodCuenta.
La tabla Cuentas con las columnas Codigo y IdBanco.
Y la tabla Bancos con las columnas IdBanc y NombreBan.

Esta claro que hay varias cuentas para un banco y la consulta tiene que devolver el nombre de cada banco, junto a la suma (del importe) de todos los cheques para ese banco; para un rango de fecha predeterminado; seria dsdeFech - hastaFech. Como se haria esa query¿

Última edición por alexcba; 16/11/2009 a las 21:57
  #2 (permalink)  
Antiguo 17/11/2009, 03:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como se resuelve estA Consulta

He puesto como dsdeFech '2009-01-10' y hastaFech '2009-12-13'.

Código sql:
Ver original
  1. SELECT b.NombreBan, SUM(ch.importe)totalimportecheques
  2.  FROM Bancos b INNER JOIN cuentas c ON b.IdBanc = c.IdBanco
  3.  INNER JOIN cheques ch ON ch.CodCuenta = c.Codigo
  4.  WHERE ch.fecha BETWEEN '2009-01-10' AND '2009-12-13'
  5.  GROUP BY b.IdBanc

No lo he probado

Última edición por jurena; 18/11/2009 a las 01:54
  #3 (permalink)  
Antiguo 17/11/2009, 14:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 68
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Como se resuelve estA Consulta

Me dice La columna 'bancos.NombreBan' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.
No se si sera la consulta o las tablas estaran mal.
  #4 (permalink)  
Antiguo 17/11/2009, 14:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como se resuelve estA Consulta

No. el problema es que estás usando otro DBMS.
¿Cuál? ¿Oracle? ¿DB2? ¿MS SQL Server?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/11/2009, 01:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como se resuelve estA Consulta

Prueba entonces agrupando por nombre de banco. Imagino que no tendrás dos nombres que sean iguales.
Código sql:
Ver original
  1. SELECT b.NombreBan, SUM(ch.importe)totalimportecheques
  2.  FROM Bancos b INNER JOIN cuentas c ON b.IdBanc = c.IdBanco
  3.  INNER JOIN cheques ch ON ch.CodCuenta = c.Codigo
  4.  WHERE ch.fecha BETWEEN '2009-01-10' AND '2009-12-13'
  5.  GROUP BY b.NombreBan
  #6 (permalink)  
Antiguo 18/11/2009, 19:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 68
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Como se resuelve estA Consulta

Jurena muchisimas gracias, aun no lo probe; cuando lo pruebo te digo.
Ah uso el Sqlserver 2005.
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 00:09.