Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Question Problemas para desplegar información detallada

hola a todos!!!.

Tengo un problema para elaborar un reporte, lo que necesito mostrar en el reporte es lo siguiente:
-------------------------------------------------------------
Casilla Municipio Propietarios Suplente
-------------------------------------------------------------
125 Basica Merida 0 1
125 Contigua Merida 1 1

Los numeros que se enlistan son la cantidad de personas que hay capturadas como propietario y suplente, como bien se puede dar cuenta, en la 125 Basica hay un suplente y propietario no existe, en la 125 Contigua existe propietario y suplente, cabe mencionar que almaceno los valores en un campo de tipo varchar, pero necesito mostrarlo con numeros , vaya el campo se llama rep_casilla y almaceno lo siguiente(Propietario y Suplente), pero no encuentro la manera de mostras que tal casilla tiene tanta cantidad de gente capturada.
No se si me expliqué lo suficiente, en caso que tengan una duda o que de plano no me entendieron pueden hacerlo saber y vere otra manera de darme a entender.
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #2  
Antiguo 04-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Nelly
hola a todos!!!.

Tengo un problema para elaborar un reporte, lo que necesito mostrar en el reporte es lo siguiente:
-------------------------------------------------------------
Casilla Municipio Propietarios Suplente
-------------------------------------------------------------
125 Basica Merida 0 1
125 Contigua Merida 1 1

Los numeros que se enlistan son la cantidad de personas que hay capturadas como propietario y suplente, como bien se puede dar cuenta, en la 125 Basica hay un suplente y propietario no existe, en la 125 Contigua existe propietario y suplente, cabe mencionar que almaceno los valores en un campo de tipo varchar, pero necesito mostrarlo con numeros , vaya el campo se llama rep_casilla y almaceno lo siguiente(Propietario y Suplente), pero no encuentro la manera de mostras que tal casilla tiene tanta cantidad de gente capturada.
No se si me expliqué lo suficiente, en caso que tengan una duda o que de plano no me entendieron pueden hacerlo saber y vere otra manera de darme a entender.
Pues no, yo no entiendo eso que dices, en un solo campo tienes al propietario y al suplente???

Así al vuelo, me parece raro que hayas definido así los campos, como se sabe quien es propietario y quien es suplente.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 04-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
[quote=egostar]Pues no, yo no entiendo eso que dices, en un solo campo tienes al propietario y al suplente???

Así al vuelo, me parece raro que hayas definido así los campos, como se sabe quien es propietario y quien es suplente.


ok... Pues si... en el campo de rep_casilla se almacena al propietario y al suplente obviamente que no juntos, sino que cada uno con diferente persona por ejemplo. Juan Propietario y en otra fila Pedro como Suplente
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #4  
Antiguo 04-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Nelly
ok... Pues si... en el campo de rep_casilla se almacena al propietario y al suplente obviamente que no juntos, sino que cada uno con diferente persona por ejemplo. Juan Propietario y en otra fila Pedro como Suplente
Perdon Nelly, pero sigo sin entender, si tienes el mismo campo rep_casilla, como es que sabes que es propietario o es suplente, ¿tienes algun status que lo deje saber?

Porque no pones un ejemplo de tu base para entender mejor, puede ser que así te podamos ayudar mejor.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 04-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
se que estatus le corresponde a cada persona porque guardo la palabra(propietario y suplente), dependiendo cual escoja el usuario, y esos datos los muestro en un combo normal de la ventana de captura. Por eso se que tipo de estatus tiene cada persona capturada, pues almaceno la palabra(Propietario o Suplente).
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #6  
Antiguo 04-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Nelly
se que estatus le corresponde a cada persona porque guardo la palabra(propietario y suplente), dependiendo cual escoja el usuario, y esos datos los muestro en un combo normal de la ventana de captura. Por eso se que tipo de estatus tiene cada persona capturada, pues almaceno la palabra(Propietario o Suplente).
Muy bien, así está mas claro, por mi parte comienzo a ver de que manera se puede solucionar y se que si se puede además de que aquí habra alguien mas que te ayude también.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 04-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Eres un amor, mil gracias... se que con tu ayuda y los que quieran opinar podre solucionar el problema
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #8  
Antiguo 04-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Nelly
Seria interesante ver como llamas o en que sentencia llamas al reporte y a la consulta.
Mostrando un poco de codigo se ven mejor las cosas.
Saludos
Responder Con Cita
  #9  
Antiguo 04-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Como estamos a un pasito de vacaciones y estoy en el relax total, hice esto que a mi me funcionó, puede que alguien conozca algo mejor, así que no es la única opción.

No se que base de datos utilices, yo lo hice con paradox que es lo mas limitado en cuanto a sentencias SQL, asi que te debería de servir para cualquiera. Además estoy usando los datos que nos muestras, no se si se llamen así

1. Agregas lo siguiente a una forma

Query1

Código SQL [-]
select Casilla, count(casilla) as Propietarios from casillas 
where Status = 'Propietario'  group by casilla

DataSource1 ligado a Query1
DBGrid ligado a DataSource1

Query2

Código SQL [-]
select Casilla, count(casilla) as Suplentes from casillas 
where Status = 'Suplente'  group by casilla

Table1
Que es la Tabla de Casillas.

2. Agrego campos nuevos en el Query1

Municipio(String) como lookup de la Table1
Suplentes(Integer) como lookup de Query2

3. Abres Query1 y te dará los campos que estas buscando.

Nota: Todo esto es en tiempo de diseño.

Espero que te sirva.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 04-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se si te parece amigo egostar, pero creo que se puede hacer con un solo query asi:
agregando un combobox para definir el tipo (propietario o suplente).
Código Delphi [-]
   Query1.Active:= False;
   Query1.SQL.Text := 'Select rep_casilla, count(casilla) as Tipo From casilla';
   Query1.SQL.Add(' Where casilla.Status = '+Combobox1.Text);
   Query1.SQL.Add(' group by rep_casilla');
   Query1.Active := True;
Bueno con esto se ahorra tiempo, creo, que te parece?
Saludos
Responder Con Cita
  #11  
Antiguo 04-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Gracias amigo, pero el problema es que se requiere que en la misma linea se tenga esto:

-------------------------------------------------------------
Casilla Municipio Propietarios Suplente
-------------------------------------------------------------
125 Basica Merida 0 1
125 Contigua Merida 1 1

Con tu query, tendriamos

caral 1
egostar 1
clubdelphi 1

En un solo query no lo pude hacer, intente esto

Código SQL [-]
select Casilla, Municipio,
(select count(casilla) from casillas 
where Tipo = 'Propietario'  and casilla = q.casilla group by casilla) as Propietarios ,
(select count(casilla) from casillas 
where Tipo = 'Suplente'  and casilla = q.casilla group by casilla)  as Suplentes
from casillas q 
group by casilla

1. Manda error porque no se puede obtener Municipio en un query con el group by casilla
2. Le quito Municipio y me muestra Propietarios y Suplentes vacios.

Por eso fue que hice un query con campos agregados.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 05-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Gracias egostar, igual a ti Caral... Ahora ya tengo un mejor escenario en relación al problema, pues utilizo la BD Firebird, con la consulta que mandas, vere si lo puedo manipular, despues les comento en que termino todo.

Saludos y muchas gracias...
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #13  
Antiguo 05-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Question

Hola buen dia a todos.... En relación al problema que tengo, hice la siguiente consulta basada en la que me mando egostar, aqui tengo mis campos reales, pero hay un detalle que no en todas cuenta bien, hay resultados que me arroja muy bien pero hay otros que cuenta uno de mas, y para ver si realmente si es asi, hago una consulta para extraer solo esa casilla con sus valores y veo que esta bien capturado, pero la consulta me dice que esta mal, el caso es que tengo la siguiente consulta:

Código SQL [-]
select ca.seccion||'  '||ca.tipo_casilla as casilla,
(select count(rep_casilla)from casilleros
where rep_casilla='PROPIETARIO 1' and sec_cuid=ca.seccion
     and tipo_casilla=ca.tipo_casilla group by sec_cuid,tipo_casilla) as Propietarios,
(select count(rep_casilla)from casilleros
where rep_casilla='SUPLENTE' and sec_cuid=ca.seccion
     and tipo_casilla=ca.tipo_casilla group by sec_cuid,tipo_casilla) as Suplentes
from casillas ca inner join casilleros c on ca.cve_casilla=c.cve_casilla
where ca.fecha_eleccion='20.05.2007'
group by ca.seccion,ca.tipo_casilla

Aqui le pido que solo sea de este año, creo que le doy mal uso al inner join por eso me arroja datos erroneos, no se si lo que plasmo ahi sea de la manera correcta.
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #14  
Antiguo 09-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Hola veo que si se tomaron las vacaciones en serio, ya que nadie a respondido a mi llamado, que barbaros, aunque no me quejo de nada ya que yo tambien me tome unos merecidos dias de descanzo.
Espero y ahora si puedan ayudarme con la consulta que les mande anteriormente.
Saludos a los que aun estan de vacaciones!!!!!!!!!!.
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #15  
Antiguo 10-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Nelly
Hola veo que si se tomaron las vacaciones en serio, ya que nadie a respondido a mi llamado, que barbaros, aunque no me quejo de nada ya que yo tambien me tome unos merecidos dias de descanzo.
Espero y ahora si puedan ayudarme con la consulta que les mande anteriormente.
Saludos a los que aun estan de vacaciones!!!!!!!!!!.
Hola Nelly, pues si, regresando de vacaciones.

En mi ejemplo sencillo donde tengo en la base de datos:

CASILLA MUNICIPIO REP_CASILLA TIPO

123 ALVARO OBREGON ELISEO Propietario
123 ALVARO OBREGON ISMAEL Suplente
123 ALVARO OBREGON JAIME Suplente
125 GUSTAVO A MADERO MIRNA Propietario
125 GUSTAVO A MADERO JORGE Propietario
125 GUSTAVO A MADERO JUAN Suplente
134 COYOACAN JAVIER Propietario

Me sale perfectamente el query

CASILLA MUNICIPIO PROPIETARIOS SUPLENTES

123 ALVARO OBREGON 1 2
125 GUSTAVO A MADERO 2 1
134 COYOACAN 1 <null>

Código SQL [-]
select Casilla, Municipio,
(select count(rep_casilla) from casillas 
where Tipo = 'Propietario'  and casilla = q.casilla group by casilla) as Propietarios ,
(select count(casilla) from casillas 
where Tipo = 'Suplente'  and casilla = q.casilla group by casilla)  as Suplentes
from casillas q 
group by casilla, municipio

Estoy usando TDelphi y Firebird 2.0

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 10-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
ok... Dime, la consulta que puse anteriormente, tiene algo incorrecto, a lo que voy es si estoy violando alguna regla de SQL. O a tu consideración esta bien la consulta?
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #17  
Antiguo 10-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Nelly
ok... Dime, la consulta que puse anteriormente, tiene algo incorrecto, a lo que voy es si estoy violando alguna regla de SQL. O a tu consideración esta bien la consulta?
Porque no hacemos una cosa, dinos como están estrucuturadas tus tablas, ya que por lo que veo estas utilizando dos tablas para obtener tu consulta.

Me parece que no estas usando correctamente el inner join e incluso dependiendo de como sea la estructura de las tablas puede o no ser necesario.

Espero tu respuesta para verificar tu sentencia SQL.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #18  
Antiguo 10-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
CREATE TABLE CASILLEROS (
CVE_CASILLERO INTEGER NOT NULL,
CVE_CASILLA INTEGER,
TIPO_CASILLA VARCHAR(30),
TIPO_REP INTEGER,
FECHA_ELECCION TIMESTAMP,
REP_CASILLA VARCHAR(20),
SEC_CUID VARCHAR(4),
CVE_ELEC VARCHAR(18),
CVE_RNM VARCHAR(18),
NESTATUS VARCHAR(32),
AP_PAT VARCHAR(30),
AP_MAT VARCHAR(30),
NOMBRE VARCHAR(60),
EDAD VARCHAR(3),
SECCION VARCHAR(4),
DOMICILIO VARCHAR(100),
CVE_MPO INTEGER,
FECHA_CURSO TIMESTAMP,
CURSO_TMDO VARCHAR(1) DEFAULT 'F',
COD_PARTIDO VARCHAR(20),
DIST_GRAL VARCHAR(5),
MPO_ORIG INTEGER,
FECHA_ALTA TIMESTAMP
);

CREATE TABLE CASILLAS (
CVE_CASILLA INTEGER NOT NULL,
DIST_LOC INTEGER,
DIST_FED INTEGER,
CVE_MPO INTEGER,
MUNICIPIO VARCHAR(100),
SECCION VARCHAR(4),
TIPO_SECCION VARCHAR(6),
PADRON_ELECTORAL INTEGER,
LISTA_NOMINAL INTEGER,
CASILLA VARCHAR(9),
TIPO_CASILLA VARCHAR(20),
UBICACION VARCHAR(80),
CALLE VARCHAR(32),
NO_EXT VARCHAR(10),
COLONIA VARCHAR(32),
CP VARCHAR(5),
REFERENCIA VARCHAR(80),
TIPO_DOMICILIO VARCHAR(80),
FECHA_ELECCION TIMESTAMP
);
__________________

Nelly [ Vive y deja vivir ]
Responder Con Cita
  #19  
Antiguo 10-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola Nelly,

Pues ya he hecho pruebas con tu sentencia SQL y no me da los valores adecuados, hice una modificación y quedo así

Código SQL [-]
select ca.cve_casilla, ca.municipio,

(select count(rep_casilla) from casilleros
where rep_casilla='PROPIETARIO 1' and cve_casilla = ca.cve_casilla group by rep_casilla) as Propietarios,

(select count(rep_casilla)from casilleros
where rep_casilla='SUPLENTE' and cve_casilla = ca.cve_casilla group by rep_casilla) as Suplentes

from casillas ca

where ca.fecha_eleccion = '20.05.2006 10:00:00'

group by ca.cve_casilla, ca.municipio

No use el inner join y me funciona bien.

Otra cosa que veo es que fecha_eleccion es un campo TIMESTAMP por lo que necesitas forzosamente incluir la hora exacta que tienes en tu base de datos, la otra es que hagas un between, algo así

Código SQL [-]
where ca.fecha_eleccion between '20.05.2006' and '21.05.2006'

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #20  
Antiguo 10-04-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Hola egostar, ya quedo la consulta modifique uno que otro dato y en efecto no se necesita hacer un inner join, mil gracias por tu tiempo, lo bueno de todo esto es que ya funciona como quiero, MIL GRACIAS otra vez.
__________________

Nelly [ Vive y deja vivir ]
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
Leer Archivos *.kar y desplegar su texto para Karaoke cacuna Varios 8 14-10-2010 14:34:04
Necesito documentacion detallada sobre ECO edalmasso Varios 2 12-01-2006 09:47:57
Descripcion detallada OLE Error n0n3 Conexión con bases de datos 1 30-06-2005 11:15:37
desplegar informacion de un selec de la base de datos en un edit sakuragi Conexión con bases de datos 5 19-11-2004 23:24:43


La franja horaria es GMT +2. Ahora son las 08:24:00.


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