Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2015, 11:23
Avatar de David_Carrera_G
David_Carrera_G
 
Fecha de Ingreso: noviembre-2014
Ubicación: Santiago
Mensajes: 37
Antigüedad: 10 años, 1 mes
Puntos: 1
Exclamación Problemas en base no relacional

Hola estimados, me dirijo a ustedes con una gran interrogante, resulta que en mi lugar de trabajo, existe una base de datos que no esta relacionada entre si, pero que si respeta esa lógica a nivel de programación PHP. Este problema me ha generado varios problemas al momento de construir consultas para mostrar algunos datos en especifico, pero el problema que actualmente tengo me supero. Les dejo info para que me puedan ayudar o darme un poco de guia.

Tengo 6 tablas a las cuales iré a consultar

Afiliado
RecepcionReembolso
SucursalSermecoop
UsuarioSistema
Empresa
Estado

siendo la tabla {RecepcionReembolso} la que consume a las otras 5, esta tabla tiene un problema "al menos para mi", tiene dos campos[RecReeIdEjecutivoLiq] y [RecReeIdUsuario] que le hacen referencia a uno solo de la tabla {UsuarioSistema}[UsuSisId], aquí nace mi problema, porque al realizar el JOIN en el campo [RecReeIdEjecutivoLiq] de la tabla {RecepcionReembolso} esta me devuelve un tipo de data, pero al cruzar el campo [RecReeIdUsuario] de la tabla {RecepcionReembolso} con el campo [UsuSisId] de la tabla {UsuarioSistema} esta me entrega otro tipo de data, lo cual hace que la información que muestro no es fidedigna y no se como solucionarlo. Adjunto las consultas que estoy utilizando:

Código MySQL:
Ver original
  1.     r.RecReeIdUsuario,    
  2.     CONCAT(a.AfiNombres, ' ', a.AfiApPaterno) Nombre,
  3.     r.RecReeIdEstadoRecepcionReembolso,
  4.     r.RecReeNumeroReembolso,
  5.     r.RecReeCopago,
  6.     r.RecReeNumDoctos,
  7.     r.RecReeIdTipoPrestacion,
  8.     r.RecReeFecha,
  9.     r.RecReeIdEjecutivoLiq,
  10.     REPLACE(s.SucSerNombre, 'ó', 'o') AS SucSerNombre,
  11.     s.SucSerId,
  12.     IF(r.RecReeIdEjecutivoLiq = 0,'SIN ASIGNAR',CONCAT(u.UsuSisNombre,' ',u.UsuSisApPaterno)) nombre_user
  13.   FROM Afiliado a    
  14.   INNER JOIN RecepcionReembolso r ON r.RecReeIdAfiliado = a.AfiId
  15.   INNER JOIN UsuarioSistema u ON r.RecReeIdUsuario = u.UsuSisId
  16.   INNER JOIN SucursalSermecoop s ON s.SucSerId = u.UsuSisIdSucursalSermecoop
  17.   INNER JOIN Empresa e ON e.EmpId = a.AfiIdEmpresa
  18.   INNER JOIN Estado t ON t.EstId = e.EmpIdEstado  
  19.   WHERE r.RecReeFecha BETWEEN '2015-08-20' AND '2015-08-20'

Como pueden ver no es una consulta de complejidad alta, pero me ha tenido bien aproblemado este tema, porque dependiendo del campo que utilice en el join [ INNER JOIN UsuarioSistema u ON r.RecReeIdUsuario = u.UsuSisId]. Este me cambia la información de las sucursales y de los usuarios. Espero me puedan dar una manito o guiar para solucionar este problema. Muchas gracias
__________________
David Carrera González
Santiago de Chile
Analista de base de datos