Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: Error en consulta SQL (Access)  (Leído 2211 veces)
0 Usuarios y 1 Visitante están viendo este tema.
piltrafa
Master
**

Prestigio: 0
Desconectado Desconectado

Mensajes: 1



Lenguajes:
PHP
Bases de datos:
Access, MySQL, MS-SQL
« en: 19/06/2007, 03:39:21 »

hola a todos, este es mi primer mensaje en el foro es por un error que me esta volviendo loco, quiero hacer una consulta en access en la cual hay datos que se repiten, por lo que quiero que los resultados se muestren agrupados, si tiro esta consulta:

SELECT Compras.Id_Compra, Compras.Fecha, Compras.Proveedor, Compras.Total FROM Compras INNER JOIN (ComprasDet INNER JOIN (Articulos INNER JOIN Categorias ON Articulos.Categoria = Categorias.Id_Categorias) ON ComprasDet.Codigo = Articulos.Codigo) ON Compras.Id_Compra = ComprasDet.IdCompra
WHERE Categorias.Categoria =  'Varios' AND Compras.Fecha BETWEEN #25/05/2007# AND #25/05/2007#

yo se que en la tabla Compras tengo 1 solo registro con fecha 25/05/2007 el cual registra 2 ventas (que estan en la tabla VentasDet de dos articulos que estan en la categoria 'Varios' y entonces me muestra 2 veces la compra, y yo solo quiero que me lo muestre 1 sola vez, entonces pense que seria facil solucionarlo agregandole "GROUP BY Compras.Id_Compra" al final de la consulta para que me agrupe los resultados, pero cuando hago eso me muestra el siguiente error:

"Ha intentado ejecutar una consulta que no incluye la expresion especificada 'Fecha' como parte de una funcion de agregado"

Alguien sabe a que se debe?? o que estoy haciendo mal?? no conozco mucho de access pero puede ser un problema de sintaxis??

gracias!!!!!
En línea
yari
Master
**

Prestigio: 0
Desconectado Desconectado

Título universitario: Ing Sistemas
Profesión: Analista de Sistemas
Mensajes: 1



Lenguajes:
Builder, Visual C++, Oracle
Bases de datos:
sql 2005
« Respuesta #1 en: 05/09/2007, 14:44:08 »

Hola
Si vas a utilizar group by ... debes utilizar todos los campos de la sentencia:
Asi:

SELECT Compras.Id_Compra, Compras.Fecha, Compras.Proveedor, Compras.Total
 FROM Compras INNER JOIN (ComprasDet INNER JOIN
(Articulos INNER JOIN Categorias ON Articulos.Categoria = Categorias.Id_Categorias)
 ON ComprasDet.Codigo = Articulos.Codigo) ON Compras.Id_Compra = ComprasDet.IdCompra
WHERE Categorias.Categoria =  'Varios'
AND Compras.Fecha BETWEEN '25/05/2007' AND '25/05/2007'
group by Compras.Id_Compra, Compras.Fecha, Compras.Proveedor, Compras.Total

Espero q te sea de utilidad

yari
En línea
Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: