Visual Basic - PROBLEMA CONSULTA SQL ADO

Life is soft - evento anual de software empresarial
 
Vista:

PROBLEMA CONSULTA SQL ADO

Publicado por SERGIO (7 intervenciones) el 30/07/2004 16:34:30
¿qué tal?
Vamos a ver si me podeis hechar un cable...

Resulta que estoy realizando una aplicación en Visual Basic 6, enlazandola con
base de datos access.

En access tengo las siguientes tablas:
Ventas(Fecha, Cant, CodProd, CodVenta) CodVenta->principal CodProd->Ajena
Productos(CodProd, Producto, Precio) CodProd->Primaria
LineasEnc(CodEnc, Linea, Cant, CodProd) CodEnc, Linea->principal Codprod->ajena
Encargos(CodEnc,Fecha,Hora,Nombre,Anular) CodEnc->principal

pues bién una vez abierta la base de datos en ado (BaseDatos), intento ejecutar
la siguiente consulta:

Dim RecordSet As RecordSet
Dim i As Integer
'SQL es una variable pública ya definida


SQL = "SELECT P.CodProd, P.Producto, P.Precio, SUM(V.Cant) AS Cant, P.Precio * SUM(V.Cant) AS SubTotal " & _
"FROM Ventas V, Productos P " & _
"WHERE V.CodProd=P.Codprod and V.Fecha=" & CDate(mskFecha) & " " & _
"GROUP BY P.CodProd, P.Producto;"

Set RecordSet = BaseDatos.Execute(SQL)

y me sale el siguiente error:
"Ha intentado ejecutar una consola que no incluye la expresión especificada 'Precio' como parte
de una función de agregado"

No consigo averiguar que es lo que pasa.
He probado con una sentencia SQL como esta SELECT * from tabla" y si funciona

¿me podeis ayudar, estoy estancado?
MUCHAS GRACIAS
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

RE:PROBLEMA CONSULTA SQL ADO

Publicado por miguel (1042 intervenciones) el 30/07/2004 16:59:55
Tienes que poner en el group by el campo P.Precio, te quedaria :

SQL = "SELECT P.CodProd, P.Producto, P.Precio, SUM(V.Cant) AS Cant, P.Precio * SUM(V.Cant) AS SubTotal " & _
"FROM Ventas V, Productos P " & _
"WHERE V.CodProd=P.Codprod and V.Fecha=" & CDate(mskFecha) & " " & _
"GROUP BY P.CodProd, P.Producto,P.Precio;"
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

RE:NO ME DA LOS DATOS ESPERADOS

Publicado por SERGIO (7 intervenciones) el 30/07/2004 18:17:05
Muchas Gracias Miguel, ahora por lo menos ya no me sale el error.

Lo que me ocurre ahora es que no me muestra los datos esperados. Te explico:

En la tabla Ventas tengo:
Fecha(18/02/1980) Cant(2) CodProd(1) CodVenta(1)

En la tabla Productos tengo
CodProd(1) Producto(pan) Precio (0,60€)

A la hora de hacer la comprobación:
With RecordSet
If (.BOF And .EOF) Then \'Si no hay datos...
MsgBox \"No Existen ocurrencias para esta Fecha\", vbCritical + vbOKOnly, \" :-(\"
Else \'mostrarlos en un MSFlexBox

me muestra el MsgBox (y no tenía porqué mostrarlo)

¿me puedes ayudar???
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

RE:PRUEBA CON ESTO....

Publicado por miguel (1042 intervenciones) el 30/07/2004 19:28:40
En Access el formato de fecha al hacer una consulta debe de tomarlo asi # 18/02/1980 #...
'Dependiendo el formato de fecha que tengas puedes hacer esto:

If Not IsDate(mskFecha) Then Exit Sub
Fecha= Month(mskFecha) & "/" & Day(mskFecha) & "/" & Year(mskFecha)

SQL = "SELECT P.CodProd, P.Producto, P.Precio, SUM(V.Cant) AS Cant, P.Precio * SUM(V.Cant) AS SubTotal " & _
"FROM Ventas V, Productos P " & _
"WHERE V.CodProd=P.Codprod and V.Fecha= # " & Fecha & "# " & _
"GROUP BY P.CodProd, P.Producto,P.Precio;"

Observacion: Si no te llegara mostrar informacion fijate bien que las ligas sean las correctas y que tengan informacion....!!!
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