Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta a 5 tablas repite resultados

Estas en el tema de Consulta a 5 tablas repite resultados en el foro de Mysql en Foros del Web. Hola amigos porfavor ayudenme con lo siguiente tengo 5 tablas y al generaun select me devuelve el resultado en filas repetidas este es el codigo ...
  #1 (permalink)  
Antiguo 23/06/2010, 11:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 11
Antigüedad: 14 años, 7 meses
Puntos: 0
Consulta a 5 tablas repite resultados

Hola amigos porfavor ayudenme con lo siguiente tengo 5 tablas y al generaun select me devuelve el resultado en filas repetidas este es el codigo

SELECT distinct gr001.aanumnit,gr001.nnasocia,detalle.kt, cc283.v_kapita,
cc283.v_intere,cc283.v_mora, cc283.v_otro, cc283.v_sdotro,cc283.a_tipodr,
detalle.k_numdoc_ref, cc282.valor, cc283.v_sdkapi, cc283.v_intere, detalle.n_concep, auxilios.auxilio

FROM
gr001, cc282, cc283, detalle, auxilios

where

gr001.k_idterc = cc282.k_idterc and
cc282.k_numdoc = cc283.k_numdoc and
cc282.k_numdoc = detalle.k_numdoc and
gr001.k_idterc = auxilios.k_idterc and
gr001.aanumnit ='79293183'


estas son las estructuras de las tablas:

Table Create Table
------ -----------------------------------------
gr001 CREATE TABLE `gr001` (
`k_idterc` int(11) NOT NULL,
`aanumnit` int(11) default NULL,
`nnasocia` varchar(50) default NULL,
`d_tercer` varchar(125) default NULL,
`n_ciudad` varchar(30) default NULL,
`n_depart` varchar(35) default NULL,
`k_ubic` varchar(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `cc282` (
`k_numdoc` varchar(7) NOT NULL,
`f_corte` date NOT NULL,
`f_inicia` date NOT NULL,
`f_final` date NOT NULL,
`f_vencim` date NOT NULL,
`k_tipodr` varchar(6) NOT NULL,
`k_idterc` varchar(16) NOT NULL,
`valor` double NOT NULL,
`reval` varchar(7) NOT NULL,
`i_tipo` varchar(7) NOT NULL,
`i_pagado` varchar(6) NOT NULL,
`n_movimi` varchar(255) NOT NULL,
`k_ano_ctb` varchar(6) NOT NULL,
`k_sucurs_ctb` varchar(6) NOT NULL,
`k_tipdoc_ctb` varchar(6) NOT NULL,
`k_numdoc_ctb` varchar(6) NOT NULL,
`v_total` varchar(6) NOT NULL,
`f_vtoreal` varchar(6) NOT NULL,
KEY `k_numdoc` (`k_numdoc`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `cc283` (
`k_serie` varchar(3) NOT NULL,
`v_kapita` double NOT NULL,
`v_intere` double NOT NULL,
`v_mora` double NOT NULL,
`v_otro` double NOT NULL,
`v_sdkapi` double NOT NULL,
`v_sdinte` double NOT NULL,
`v_sdmora` double NOT NULL,
`v_sdotro` double NOT NULL,
`k_tipodr` varchar(6) NOT NULL,
`k_numdoc` varchar(7) NOT NULL,
`k_numdoc_ref` varchar(12) NOT NULL,
`k_tipodr_ref` varchar(10) NOT NULL,
`a_tipodr` varchar(5) NOT NULL,
`a_obliga` varchar(10) NOT NULL,
`v_pgkapi` double NOT NULL,
`v_pginte` double NOT NULL,
`v_pgmora` double NOT NULL,
`v_pgotro` double NOT NULL,
`f_contab` varchar(25) NOT NULL,
`k_codcon` varchar(25) NOT NULL,
`i_efesal` varchar(15) NOT NULL,
`f_vencim` datetime NOT NULL,
`q_indice` varchar(5) NOT NULL,
`i_reprog` varchar(5) NOT NULL,
`f_reprog` datetime NOT NULL,
`v_intrep` double NOT NULL,
`f_intere` datetime NOT NULL,
`f_kapita` datetime NOT NULL,
`k_cuenta` varchar(25) NOT NULL,
KEY `k_numdoc` (`k_numdoc`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `detalle` (
`k_numdoc` varchar(7) NOT NULL,
`kt` varchar(5) NOT NULL,
`k_numdoc_ref` varchar(50) NOT NULL,
`n_concep` varchar(115) NOT NULL,
KEY `k_numdoc` (`k_numdoc`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `auxilios` (
`k_idterc` int(10) unsigned NOT NULL,
`aanumnit` varchar(18) NOT NULL,
`nnasocia` varchar(125) NOT NULL,
`cuota` double unsigned NOT NULL,
`auxilio` double unsigned NOT NULL,
`congel` double unsigned NOT NULL,
`antici` double unsigned NOT NULL,
`docsop` varchar(45) NOT NULL,
`categ` varchar(45) NOT NULL,
KEY `k_idterc` (`k_idterc`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

Cuando ejecuto la consulta me retorna 16 lineas y veo que se repiten los datos esta consulta solo deberia mostrarme 5 lineas


graciassss

graciasss
  #2 (permalink)  
Antiguo 23/06/2010, 15:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta a 5 tablas repite resultados

El distinct afecta a toda la cadena, es decir, a todos los campos, y como cambian algunos valores en cada registro devuelto, eso explica las repeticiones en aanumnit. Tendrías que usar un group by
SELECT gr001.aanumnit, gr001.nnasocia,detalle.kt, cc283.v_kapita,
cc283.v_intere,cc283.v_mora, cc283.v_otro, cc283.v_sdotro,cc283.a_tipodr,
detalle.k_numdoc_ref, cc282.valor, cc283.v_sdkapi, cc283.v_intere, detalle.n_concep, auxilios.auxilio
FROM
gr001 INNER JOIN cc282 ON gr001.k_idterc = cc282.k_idterc
INNER JOIN cc283 ON cc282.k_numdoc = cc283.k_numdoc
INNER JOIN detalle ON cc282.k_numdoc = detalle.k_numdoc
INNER JOIN auxilios ON gr001.k_idterc = auxilios.k_idterc
WHERE gr001.aanumnit ='79293183' group by gr001.aanumnit
No entiendo qué es exactamente lo que deseas mostrar. Piensa que esta consulta te mostrará un sólo registro en el que los valores de los otros campos serán los primeros que encuentra. Es un dato falseado, engañoso. Dinos qué quieres hacer y te ayudaremos a preparar una consulta mejor. Por cierto, haz los cruces de tablas con INNER JOIN y no en el where, que debes reservar para el dato buscado.
  #3 (permalink)  
Antiguo 24/06/2010, 08:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 11
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Consulta a 5 tablas repite resultados

Gracias jurena, bueno lo que necesito es que esta consulta me retorne 5 lineas actaulmete me devuelve 16 registros pero en realidad son cinco porque el campo detalle.kt tiene distintos asi cmo el campo cc283.v_otro, es decir son 5 conceptos en la columna detalle.kt los cuales tines un valor en la columna cc283.v_otro esa mis gran duda muchas gracias

Etiquetas: select, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:31.