Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Reporting Con Tablas Paradox Via Tquery (https://www.clubdelphi.com/foros/showthread.php?t=55916)

alexey1982 01-05-2008 05:11:49

Reporting Con Tablas Paradox Via Tquery
 
Hola Un Saludo Antes Que Nada Dejenme Aclarar, Que No Soy Ningun Experto en este rollo de las BD, estoy trabajando en un proyecto, y quisiera hacer una herramienta de reporting, accesando a tablas paradox via Tquery (sql query), la bronca es.. (y segun he visto es natural en Sql) que me salen datos repetidos!!, es decir, suponagan que tengo una tabla principal "cliente" y a ese cliente se relaciona con otras 3, Servicio Realizado, Equipo, y Descripcion De Orden De Servicio, y Cuando le Doy query: vamos a ponernos simples... (Select Distinct * From Clientes,Servicios,Equipo Where (Cliente.Idcliente = Equipos.Idcliente) And (Cliente.Idcliente = Servicios.idCliente), A La Hora De Darle Este Query, Me Salen.. Muchisimos Datos Repetidos Que Se Multiplican Exponencialmente.... X_X se supone que la clausula "distinct" deberia de hacerme ese favor.. y where.. tambien...
es decir que si tengo un cliente que tiene 3 equipos y si se le han hecho 3 servicios a cada equipo.... Me sale un listonononon... alguien sabra la manera de que.. ahm.. me salga, 1 solo "cliente" , 3 "equipos" y los 3 "servicios" correspondientes a cada equipo sin llenarme de tanto rollo repetido?
Me Ayudarian Bastante!!! UN SALUDO!

BlueSteel 01-05-2008 05:39:35

Hola alexey1982

te sugiero que utilices las codigos vb.. para que puedas explicar mejor tu planteamiento

de esta forma el codigo quedaría algo así

Código SQL [-]
 
Select Distinct * 
From Clientes,Servicios,Equipo 
Where (Cliente.Idcliente = Equipos.Idcliente) And (Cliente.Idcliente = Servicios.idCliente)

me gustaria que pusieras que te arroja esta sentencia..... y que quieres que te arroje....

Cita:

es decir que si tengo un cliente que tiene 3 equipos y si se le han hecho 3 servicios a cada equipo....
prueba con esto... pero no estoy seguro si te sirva.. (podrias poner ejemplo practico...)

Código SQL [-]
 
Select Distinct * 
From Clientes,Servicios,Equipo 
Where (Cliente.Idcliente = Equipos.Idcliente) And (Equipo.IdEquipo = Servicios.idEquipo)

segun lo anterior debes relacionar de la sgte forma...

Cliente -> Tiene -> Equipos -> Realizaron -> Servicios

Salu2:p:D

alexey1982 01-05-2008 06:10:44

que me arroja..
 
bueno, es sencillo.. me arroja algo como esto: :D

nombre cliente - equipo 1 - servicio1
nombre cliente - equipo 1 - servicio2
nombre cliente - equipo 1 - servicio3
nombre cliente - equipo 2 - servicio1
nombre cliente - equipo 2 - servicio2
nombre cliente - equipo 2 - servicio3
nombre cliente - equipo 3 - servicio1
nombre cliente - equipo 3 - servicio2
nombre cliente - equipo 3 - servicio3

o_O lo que estoy buscando es alguna forma de.. mostrar lo siguiente...


nombre cliente - equipo1
-servicio1
-servicio2
-servicio3
equipo2
-servicio1
-servicio2
-servicio3
equipo3
........(and so on)
tengo 3dbgrids conectadas a la misma tquery, y cada una con sus columnas especificas.... pero estoy pensando que a lo mejor me meti en camisa de 11 varas.. queriendolo hacer con 1 solo query.. puesto que soy pollo y no gavilan.. :(
mira el chiste esta.. no tanto en que datos me arroja el query, puesto que ese comportamiento segun se es normal del sql, y conectar directamente al query .. tal vez no es la mejor decision a tomar... X_X tu que opinas crees que se pueda? o tendre que rascarme con mis propias ugnitas y crear codigo de filtro para el resultando en runtime... X_X pero supongo que sql, tan bueno como dicen que es.. tiene a fuerza que tener con algun parametro para filtrar el contenido....... X_X para poder hacerlo multidimensional y no lineal :confused: .. bueno eso creo... :o

egostar 01-05-2008 06:21:41

Veo que tu consulta SQL ya te muestra la información necesaria para tu requerimiento, asi que el query hace lo que tiene que hacer. Para mostrar la información como lo necesitas usa QReport colocand bandas QRGroup asignando la expresion con los campos que quieres agrupar y solucionas tu problema.

Salud OS

alexey1982 01-05-2008 06:24:27

lol!!! POR QUE NO SE ME HABIA OCURRIDO ANTES AMIGO!
DEJAME PROBARLO.. /// updated....

ahm, solo existe un pequegno problem.. que no tengo esos componentes instalados en mi delphi [delphi 7 standard edition]


// update....
hahaha ya lo consegui! haha aqui: http://www.quickreport.co.uk/stanlegacy.html
para aquellos que lo necesiten como yo!

Salud - OS [Linux Ubuntu.. rifa!]


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

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