Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
Me es necesario el numero de telefono.
no me funcciona poniendo ni first(tel) ni last(tel) con o sin el tel dentro del grup by.
he intentado probar variaqs combinaciones con el first last etc, pero tan siquiera esto me funcciona.

Código SQL [-]
SELECT 
 first(TEL.TELEFONO)
FROM
 "BFICHEROS:TELS_EMP.DB" AS TEL

me da error.
Puede venir por el echo de usar paradox??? Lo digo pq ya me he encontrado muchisimas limitaciones, como no poder poner un select dentro de un from o no poder poner condiciones en los group by.
Gracias por vuestros esfuerzos
Responder Con Cita
  #2  
Antiguo 18-07-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
No, el problema es de la sentencia que escribes, que está sintácticamente mal.
En una sentencia SQL con agrupaciones, todo lo que no esté en funciones de grupo, de estar incluido en el group by.

Observa que lo he quitado del group by, y le he añadido el first

Código SQL [-]
SELECT 
FRA.CLIENTE, EMP.NOMBRE, FIRST(TEL.TELEFONO), SUM(FRA.BASE_IMP)
FROM
"BFACTU2:FAC_EMI.DB" AS FRA,
"BFICHEROS:EMPRESAS.DB" AS EMP,
"BFICHEROS:TELS_EMP.DB" AS TEL
WHERE 
TEL.EMPRESA = EMP.ID_EMPRESA AND
EMP.ID_EMPRESA = FRA.CLIENTE AND
FRA.BASE_IMP <> 0 
GROUP BY
FRA.CLIENTE, EMP.NOMBRE
ORDER BY
FRA.CLIENTE

En la ultima query que pones , no incluyes ningun group by, por lo que te casca.


Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 18-07-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
Te decia:
"no me funcciona poniendo ni first(tel) ni last(tel) con o sin el tel dentro del grup by" ^^
es decir que probe de ponerlo con o sin el tel en el group by, con o sin group by incluso, pero me de error (Y no, si no pongo el first no me da error)

por ejemplo esta sentencia simplificada tmb me falla y segun lo que tu me escribes entiendo que eso SI deberia funccionar no?



Código SQL [-]
SELECT
FRA.CLIENTE, EMP.NOMBRE, FIRST(TEL.TELEFONO)
FROM
": DBFACTU2:FAC_EMI.DB" AS FRA,
": DBFICHEROS:EMPRESAS.DB" AS EMP,
": DBFICHEROS:TELS_EMP.DB" AS TEL
WHERE
TEL.EMPRESA = EMP.ID_EMPRESA AND
EMP.ID_EMPRESA = FRA.CLIENTE
GROUP BY
FRA.CLIENTE, EMP.NOMBRE
ORDER BY
FRA.CLIENTE








pongo espacios entre ": DB... para que no salgan los :-D

Yo creo que debe de venir con una incompatibilidad de mi paradox con el first... o algo :S ya te digo muchas veces man dado suluciones que no he podido aplicar, por lo visto esto es MUY reducido -_-'

Última edición por NSL94 fecha: 18-07-2007 a las 13:31:05.
Responder Con Cita
  #4  
Antiguo 18-07-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Efectivamente, parece que paradox no permite hacer lo que quieres

Esta sentencia en cualquier otro motor debiera funcionar sin problemas.

No se me ocurre ninguna solución que no pase por hacer varias querys que 'monten' la información que necesitas.

Suerte y saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 18-07-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 22
kuan-yiu Va camino a la fama
Si te da igual qué nº de teléfono sacar prueba con MAX(), esa función debería existir en Paradox.
Responder Con Cita
  #6  
Antiguo 19-07-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
Gracias por la propuesta Kuan, debo reconopcer que cuando lei tus lineas pense "Que idiota soy!!! es que alli esta, en las cosas sencillas esta la clave"
Pero NO.

Al usar el MAX( ) me encuentro que se me suman entre ellos los diferentes registros es decir, si 1-empresa tiene N-telefonos la suma sera igual a (SUMA x N) y a mi me interesa sacar la suma X 1 para cada empresa indepedentiemente del numero de telefono que esta tenga, lo que me da igual es que numero sale (si lo se... la sql esta es un poco absurda... pero a mi me mandan por hacer cosas absurdas aqui xDD)
Sigo investigando -_-'
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresion de group header group footer Manuel Impresión 3 11-11-2007 01:05:23
Cómo utilizar consultas con DISTINCT de forma correcta dec MySQL 9 19-09-2006 17:50:47
group by y dbgrid, poner condicion como columna? JoseQ Conexión con bases de datos 4 17-05-2005 03:57:24
consultas anidadas: group by dentro otro group by DobleSiete SQL 7 31-01-2005 14:59:31
Group Header, Detail y Footer Group en la misma pagina MarcelRuz Impresión 0 20-04-2004 23:27:14


La franja horaria es GMT +2. Ahora son las 07:09:43.


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