Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Arrow Problemas con Extract

Hola Foro tengo el siguiente problema:

Realizo una consulta en SQL, utilizndo un TQuery y trabajando paradox por medio del BDE en Delphi 5.

La consulta es la siguiente

Código SQL [-]
Select Extract(Month from Fecha) as Mes, Receptora, sum(TM + TMAgre - 
TMDesc) as Pescado, sum(TM) as PescadoBalanza from taVrmp where
(extract(year from Fecha) = "2004") group by Mes, Receptora order by
Receptora, Mes

Pero me da el error:

Cita:
Invalid Field Name Mes
Que podra ser eso??

Mes no es ningun campo dentro de la tabla, y no tengo agregado los TFIelds
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #2  
Antiguo 16-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
La verdad que no conozco el SQL de Paradox, pero prueba esto:
Código SQL [-]
Select Extract(Month from Fecha) as Mes, Receptora, sum(TM + TMAgre - 
TMDesc) as Pescado, sum(TM) as PescadoBalanza from taVrmp where
(extract(year from Fecha) = "2004") group by Extract(Month from Fecha), Receptora order by
Receptora, Extract(Month from Fecha)
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 16-07-2004 a las 15:31:36. Razón: Corrección de la consulta
Responder Con Cita
  #3  
Antiguo 16-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Ha hecho falta sustituir también en el Group By.

Esto debido a que Mes es solamente un alias, que no puede ser usado en otras partes de la consulta. Al menos no, segun el estándar.

hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 16-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por jachguate
Ha hecho falta sustituir también en el Group By.
Esta todo tan pegado que solo había visto el group by! (no había visto el order by )
Ya lo corregí!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 16-07-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Claro... en el sql el orden se debe dar por un campo de la tabla y no por un alias como dice jachguate. inclusive puedes decirlo asi order by 1 donde 1 es el primer campo del select
Saludos
Responder Con Cita
  #6  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
El problema es el alias q pones Eduardo, ya hice pruebas en mi maquina y de esta manera no da problemas:
Código:
SELECT NoClausura Numero, NoLicencia Licencia, Extract (Month from Fecha) Mes
FROM Clausura
Si notas no es necesario usa "AS".

Nota: Las pruebas las hice con paradox, Delphi 6 y un query

Salu2.
Responder Con Cita
  #7  
Antiguo 16-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Bueno, ya vamos encaminados, si le quito el group by y el order by si funciona, por eso mismo tendria que quitar el sum de los campos, ahora este cursor que me devuelve la consulta:
Código SQL [-]
Select Extract(Month from Fecha) as Mes, Receptora, (TM + TMAgre - 
TMDesc) as Pescado, sum(TM) as PescadoBalanza from taVrmp where
(extract(year from Fecha) = "2004")


tendria que hacerle esta consulta:

Código SQL [-]
Select Mes, Receptora, Sum(Pescado), Sum(PescadoBalanza) from "cursor" group by Mes, Receptora


La duda seria como obtengo el cursor resultante del query anterior para colocarlo en el from dela siguiente consulta, ya intenteen el from insertar la consulta y el error que marca es invalid use o token, con respecto al orden por el numero me da capacidad no soportada
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 16-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Ya puestos a esta manera, podes crear una vista con la primera consulta y hacer el select de la vista, aunque en este caso no es estrictamente necesario. Siguiendo los consejos anteriores podes hacer un select único que te devuelva los datos que buscas.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Pues haciendo pruebas me di cuenta q no es permitido hacer tu consulta eduardo, de esta manera es permisible:
Código:
SELECT NoClausura, NoLicencia, Fecha, SUM( Multa ) Multa
FROM Clausura
GROUP BY NoClausura, NoLicencia, Fecha
ORDER BY NoClausura
Sin embargo al agregar el Extract manda la excepcion:
"Expressions in group by are not supported", asi q debes buscar otro camino. Si comenta q es lo q deseas hacer exactamente quizas sea mas facil q te ayuden.

Salu2.
Responder Con Cita
  #10  
Antiguo 16-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por delphi.com.ar
La verdad que no conozco el SQL de Paradox, pero prueba esto:
Código SQL [-]
Select Extract(Month from Fecha) as Mes, Receptora, sum(TM + TMAgre - 
TMDesc) as Pescado, sum(TM) as PescadoBalanza from taVrmp where
(extract(year from Fecha) = "2004") group by Extract(Month from Fecha), Receptora order by
Receptora, Extract(Month from Fecha)
Saludos!
Lo hice en el group y en el order y da "Expressions in group by are not supported"

Cita:
Empezado por PABLOCARLOS
Claro... en el sql el orden se debe dar por un campo de la tabla y no por un alias como dice jachguate. inclusive puedes decirlo asi order by 1 donde 1 es el primer campo del select
Saludos
dice capability no suported

Cita:
Empezado por jachguate
Ya puestos a esta manera, podes crear una vista con la primera consulta y hacer el select de la vista, aunque en este caso no es estrictamente necesario. Siguiendo los consejos anteriores podes hacer un select único que te devuelva los datos que buscas.

Hasta luego.
Eso es lo que he intentado un select unico pero sigue sin funcionar por las razonesexpuestas

Cita:
Empezado por Nefy
Sin embargo al agregar el Extract manda la excepcion:
"Expressions in group by are not supported", asi q debes buscar otro camino. Si comenta q es lo q deseas hacer exactamente quizas sea mas facil q te ayuden.
lo que deseo es sumar el total de pescado y agruparlo por mes en un año determinado
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Cita:
Empezado por eduarcol
lo que deseo es sumar el total de pescado y agruparlo por mes en un año determinado
Si usas el QuickReport (me imagino q quieres generar un reporte) yo haria lo siguiente:
1.-Selecciono todos los registros de un año determinado usando un TQuery
2.-Relaciono el TQuery a un QuickReport uso QRExpr para generar las sumas y un QRGroup para agrupar los datos por mes.

Salu2.
Responder Con Cita
  #12  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Me falto añadir q en el primer paso al generar la consulta no ocuparas usar Group by pues lo haras en el QuickReport y ahora si podras usar Extract

Salu2.
Responder Con Cita
  #13  
Antiguo 16-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
El asunto es que no solo va a un reporte, tambien va a una presentacion en pantalla de ingreso de datos
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #14  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Cita:
Empezado por eduarcol
tambien va a una presentacion en pantalla de ingreso de datos
Pretendes q el usuario modifique el resultado de la consulta?. Mas bien te has de referir a q deseas mostrar en pantalla una vista previa al reporte no??.

Salu2.
Responder Con Cita
  #15  
Antiguo 16-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
No esos son datos que no se modifican, solo que en determinada pantalla de ingreso de datos debo mostrar la lista de recepcion por mes del año en curso para valores referenciales
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #16  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Y porq no lo haces mostrando un Previem del Reporte generado??


salu2.
Responder Con Cita
  #17  
Antiguo 16-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Lo que pasa es que todo debe estar en la misma pantalla previsualizacion de los datos e ingreso de otros datos adicionales, son exigencias del cliente asi que ni modo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #18  
Antiguo 16-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
En ib 6.0 lo he solucionado creando una vista (con un solo select es imposible) y luego haciendo un select de la vista y agrupando.

En otros motores si es perfectamente válido usar la expresión. En firebird 1.5 no lo he intentado, puesto que todo ha venido de ib 6 y sigo con la misma mecánica de trabajo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #19  
Antiguo 16-07-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Cita:
Empezado por eduarcol
Lo que pasa es que todo debe estar en la misma pantalla previsualizacion de los datos e ingreso de otros datos adicionales, son exigencias del cliente asi que ni modo
Vaya ahi si q pues te quedaria buscar un control q te permita visualizar los datos
la verdad q ahi si no se como se le podria hacer. Asi q tienes trabajo aparte de VPN.

Salu2.
Responder Con Cita
  #20  
Antiguo 16-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por nefy
Asi q tienes trabajo aparte de VPN.
Salu2.
no tienes una idea de cuanto, ojala esas dos fueran solo mis preocupaciones

trabajar con un verdadero motor relacional como IB seria lo ideal. pero ni modo, me tocara guardar el resultado de la consulta en una tabala temporal y luego sacar la otra consulta desde esa tabla, no veo otra
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:09:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi