Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2015
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
Seleccionar registros de una tabla con count de un campo = 1

Tengo una tabla de Habitantes que tiene un campo "codigo_domicilio" que hace referencia a una segunda tabla de Domicilios.
Trato de seleccionar todos los habitantes que viven solos, es decir aquellos registros con "codigo_domicilio" unico.
Aguien me puede guiar con esto?.
Saludos.
Responder Con Cita
  #2  
Antiguo 29-07-2015
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Segun como entendí el asunto, con la cláusula Having lo solucionarías:

Código SQL [-]
select Nombre, count(*) from Tabla_En_Cuestion Group By Nombre Having Count (*) = 1
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 29-07-2015
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
Gracias por la aportación.
He probado:
Código SQL [-]
select 
CODTIPODOC, CODIGODOC, LETRADOC, NOMBRE,  PARAPELLIDO1, APELLIDO1, PARAPELLIDO2, APELLIDO2, SEXO, HOJAPADRONAL, count(*)  
from PHABITANTES  Group By HOJAPADRONAL Having Count (*) = 1
y me da error de
Código:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Parece como si el "group by" solo pudiese seleccionar el campo de agrupación.
Responder Con Cita
  #4  
Antiguo 29-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Necesitas un tutorial de SQL

Si miras el ejemplo de Jhonny, ha puesto el campo 'nombre' y luego en el group by ha puesto el campo 'nombre'.
Si tú pones otros campos, debes ponerlos también en el group by.
Responder Con Cita
  #5  
Antiguo 29-07-2015
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Necesitas un tutorial de SQL
Si miras el ejemplo de Jhonny, ha puesto el campo 'nombre' y luego en el group by ha puesto el campo 'nombre'.
Si tú pones otros campos, debes ponerlos también en el group by.
El problema es que si meto todos los campos en el group by seleccionara los que se diferencien por cualquier campo y no solo por el campo 'nombre', o en mi caso, 'HOJAPADRONAL' con lo que no filtrara los habitantes que esten solos en una hojapadronal o domicilio.
El SQL de jhony funciona correctamente, el fallo surge cuando trato de obtener más campos de la tabla.

Última edición por apicito fecha: 29-07-2015 a las 20:45:38.
Responder Con Cita
  #6  
Antiguo 29-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que el funcinamiento es ese.
Puedes traerte los códigos de clientes y luego con ellos traerte el resto de datos que necesites.
Responder Con Cita
  #7  
Antiguo 29-07-2015
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Es que el funcinamiento es ese.
Puedes traerte los códigos de clientes y luego con ellos traerte el resto de datos que necesites.
Voy a hacer pruebas.
Responder Con Cita
  #8  
Antiguo 29-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola apicito.
Cita:
Empezado por apicito Ver Mensaje
Tengo una tabla de Habitantes que tiene un campo "codigo_domicilio" que hace referencia a una segunda tabla de Domicilios.
Trato de seleccionar todos los habitantes que viven solos, es decir aquellos registros con "codigo_domicilio" unico.
Aguien me puede guiar con esto?.
Saludos.
Si no te interpreté mal, creo que tu consulta sería:
Código SQL [-]
SELECT T1.CAMPO1, T1,CAMPO2, ...
FROM TABLA T1
WHERE T1.CODIGO_DOMICILIO IN (SELECT T2.CODIGO_DOMICILIO 
                              FROM TABLA T2 GROUP BY(T2.CODIGO_DOMICILIO) 
                              HAVING COUNT(T2.CODIGO_DOMICILIO) = 1)
El problema que veo, es que la consulta podría resultar extremadamente pesada si existen muchas filas...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 31-07-2015
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
Gracias a todos.
La solución de ecfisa me ha funcionado correctamente.
Es una consulta pesada, pero se realiza pocas veces.
Un saludo.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
seleccionar los ultimos registros de una tabla ingabraham SQL 16 21-02-2015 01:08:33
seleccionar los ultimos registros de una tabla JODELSA SQL 1 04-10-2006 15:27:41
Seleccionar todos los registros de una tabla menos 2 FunBit MySQL 4 13-07-2005 17:06:31
Seleccionar registros en una tabla, envio, e insercion en otra tabla!! EfrainSanmiguel Conexión con bases de datos 3 21-10-2004 01:12:43
Seleccionar varios registros de una tabla por un campo vhirginia Conexión con bases de datos 19 27-04-2004 12:00:57


La franja horaria es GMT +2. Ahora son las 15:42:13.


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