none
Query SQL Server con 3 tablas VB.Net RRS feed

  • Pregunta

  • Buenas, no se si estoy abriendo el post en el sitio correcto...
    Mi problema es que tengo 3 tablas y me duplica algunos registros y no se por que, le he dado mil vueltas y esto es lo que mas me he acercado a lo que necesito pero me duplica algunos...

    SELECT * FROM farchgra far LEFT JOIN fcasoscli fca
    ON far.CODIGOCLI= fca.CODIGO AND far.CODIGOCLI2=fca.CODIGO AND far.CODIGOCLI3=fca.CODIGO AND far.CODIGOCLI4=fca.CODIGO 
    LEFT JOIN FARCHGRA22 far22 ON far.NUMERO2= far22.NUMERO2
    WHERE far.NUMERO=4263
    ORDER BY far.FECGRAD DESC

    He intentado ordenarlo lo mejor posible para que se lea bien...

    Necesito coger todos los registros de Farchgra que coincidan en el numero XXX cada registro puede contener varios Fcasoscli
    Luego coger de Farchgra22 los que coincidan con el numero2 de Farchgra.

    No se si me he explicado bien...es un poco lioso.

    • Cambiado Enrique M. Montejo viernes, 27 de marzo de 2015 15:57 Pregunta relacionada con consulta T-SQL.
    viernes, 20 de marzo de 2015 18:29

Respuestas

Todas las respuestas

  • y en Farhgra tienes 4 columnas llamadas  CODIGOCI,CODIGOCI2,CODIGOCI3,CODIGOCI4??????? Y necesitas que todas esas columnas sean iguales a fca.CODIGO, sino me equivoco te muestra un registro por cada vez que encuentra una coincidencia en cada columna... cierto?? sacame de la duda...

    bueno si es asi prueba quitar el AND y ponle un OR

    ON far.CODIGOCLI= fca.CODIGO OR far.CODIGOCLI2=fca.CODIGO OR far.CODIGOCLI3=fca.CODIGO OR far.CODIGOCLI4=fca.CODIGO 

    Si te sirvio marca como  respuesta... sino comenta...

    Saludos

    viernes, 20 de marzo de 2015 20:23
  • No me funciona bien ni con AND ni con OR, también probé FULL JOIN y nada....

    Os explico lo que tengo.... A ver si es que no puedo hacerlo en un select....

    La tabla Far, tiene varios campos CodigoCli1,Codigocli2, codigocli3...

    La tabla Fca, tiene un campo Codigo y uno descripción.

    En Far cada paciente puede tener un código distinto de Fca por eso tengo CodigoCli1, Codigocli2 y puede tener varios códigos de Fca....

    ¿Podría hacer una consulta de Far y que me aparezcan todas las descripciones de fca? 

    sábado, 21 de marzo de 2015 11:59
  • Hola Ramón,

    Es muy confuso lo que explicas y si no obtienes respuestas inmediatas es porque no planteas bien el problema. ¿Podrías mostrarnos unos 5 registros por cada tabla e indicarnos que es lo que requieres? Si dejas claro todo el escenario y tu requerimiento, tendrás propuestas de solución certeras e inmediatas. Ayúdanos, no lo dejes todo a nuestra imaginación, no dejes espacio para especulaciones.



    sábado, 21 de marzo de 2015 14:15
  • Aqui estan los codigos con sus descripciones

    Tabla con las descipciones y todos los casos que podemos elegir...

    Cada cliente puede tener varios casos(Codigocli,codigocli2,codigocli3)

    Tabla de clientes...Donde cada uno puede tener varios casos(codigocli,codigocli2,codigocli3...)
    lunes, 23 de marzo de 2015 12:23
  • El problema es que necesito la descripción de cada caso...y si no me equivoco, si uno tiene varios casos me salían duplicados...
    lunes, 23 de marzo de 2015 12:26
  • como es la relaccion de esas tablas.. los ID.?

    maestro FCA = CODIGO??

    Esclavo FAR= codigocli,codigocli2,codigocli3,codigocli4..

    ??????? asi las tienes....??

    lunes, 23 de marzo de 2015 15:33
  • Hola,

    Veo que ahí tienes un problema en el diseño de las tablas y es correcto lo que presumes, la consulta retornará registros duplicados por cada código coincidente.

    Ahora, ¿Por qué requieres relacionarlo con la tabla fcasoscli?

    Espero tu feed-back

    lunes, 23 de marzo de 2015 15:37
  • Están relacionadas con Codigo y Codigocli, codigocli2.....

    lunes, 23 de marzo de 2015 16:44
  • Necesito relacionarla con esa tabla por que cada paciente puede tener varias enfermedades, entonces me guardo en el paciente los códigos de las enfermedades y en la otra tabla los códigos con las descripciones.

    Cuando consulto un paciente necesito que salgan las descripciones de las enfermedades.

    Cada programa tiene que darse de alta las enfermedades que el quiera...

    lunes, 23 de marzo de 2015 16:46
  • pues ahi veo una relacion de muchos a muchos... debes romperla con una nueva tabla... ya asumo que un paciente puede tener vario codigos, un codigo puede pertenecer a varios pacientes.. necesitarias una nueva tabla.... pero bueno tu sabras si se puede...

    lunes, 23 de marzo de 2015 19:20
  • Evidentemente...

    martes, 24 de marzo de 2015 8:44
  • Hola.

    ¿Resolviste ya el problema?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    domingo, 5 de abril de 2015 9:18
    Moderador
  • Perdona Alberto, lo que hice finalmente fue realizar otra query, no quería pero no me quedo otra opción.

    martes, 14 de abril de 2015 17:58