Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-03-2010
Avatar de Softweb
Softweb Softweb is offline
Miembro
 
Registrado: ago 2008
Posts: 46
Poder: 0
Softweb Va por buen camino
Muchas gracias por la respuesta, me a sorprendido pues no sabia que se podian poner los JOIN tan enrevesados.;-)

Aunque cuando lo implemento me da un error.

"El prefijo de la columna T no coincide con un nombre de tabla o con un alias usado en la consulta."

Tu codigo despues de ponerle los nombres reales de los campos lo e puesto asin.

Código SQL [-]
 INNER JOIN (SELECT Min(U.AUTORES_CODIGO) as AUTORES_CODIGO, T.TITULO_AUTOR_TITULOS_CODIGO
           FROM dbo.TITULO_AUTOR GROUP BY T.TITULO_AUTOR_TITULOS_CODIGO) T ON A.ARTICULOS_CODIGO=T.TITULO_AUTOR_TITULOS_CODIGO 
   INNER JOIN dbo.AUTORES U ON T.TITULO_AUTOR_AUTORES_CODIGO=U.AUTORES_CODIGO

Parese que es en el tramo
Código SQL [-]
FROM dbo.TITULO_AUTOR GROUP BY T.TITULO_AUTOR_TITULOS_CODIGO) T ON  A.ARTICULOS_CODIGO=T.TITULO_AUTOR_TITULOS_CODIGO

yo lo e cambiado por probar por
Código SQL [-]
FROM dbo.TITULO_AUTOR T GROUP BY T.TITULO_AUTOR_TITULOS_CODIGO) ON  A.ARTICULOS_CODIGO=T.TITULO_AUTOR_TITULOS_CODIGO

pero entonce me dice que hay un error cerca del "ON".

tienes idea de que va el asunto.

Saludos y gracias anticipadas.
Responder Con Cita
  #2  
Antiguo 29-03-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola SoftWeb, no he podido responderte antes porque despues de enviarte mi respuesta no me volvi a conectar al foro hasta hoy día.

Sobre tu pregunta, el error es porque no le estas dando un alias a tu tabla dbo.titulo_autor dentro la subconsulta, la que tiene el alias T es la subconsulta que esta dentro de los paréntesis.

Código SQL [-]
INNER JOIN (SELECT Min(AUTORES_CODIGO) as AUTORES_CODIGO, TITULOS_CODIGO
           FROM TITULO_AUTOR GROUP BY TITULOS_CODIGO) T ON A.CODIGO=T.TITULOS_CODIGO

Otro error es que estas utilizando el Alias U dentro de la subconsulta que tampoco existe, sino que esta fuera en el otro inner join

Cita:
Empezado por Softweb Ver Mensaje
Código SQL [-]

INNER JOIN (SELECT Min(U.AUTORES_CODIGO) as AUTORES_CODIGO, T.TITULO_AUTOR_TITULOS_CODIGO
FROM dbo.TITULO_AUTOR GROUP BY T.TITULO_AUTOR_TITULOS_CODIGO) T ON A.ARTICULOS_CODIGO=T.TITULO_AUTOR_TITULOS_CODIGO
INNER JOIN dbo.AUTORES U ON T.TITULO_AUTOR_AUTORES_CODIGO=U.AUTORES_CODIGO

No te olvides que el campo U.AUTORES_CODIGO osea solo AUTORES_CODIGO debe pertenecer a tu tabla TITULO_AUTOR que en si es el campo que se relaciona con tu tabla AUTORES. Tu consulta debería quedar así:

Código SQL [-]
SELECT A.CODIGO, A.NOMBRE_ARTICULO, A.CODIGO_EAN, U.AUTORES_NOMBRE
FROM dbo.ARTICULOS A
INNER JOIN (SELECT Min(TITULO_AUTOR_AUTORES_CODIGO) as TITULO_AUTOR_AUTORES_CODIGO, TITULO_AUTOR_TITULOS_CODIGO
           FROM dbo.TITULO_AUTOR GROUP BY TITULO_AUTOR_TITULOS_CODIGO) T ON A.ARTICULOS_CODIGO=T.TITULO_AUTOR_TITULOS_CODIGO 
   INNER JOIN dbo.AUTORES U ON T.TITULO_AUTOR_AUTORES_CODIGO=U.AUTORES_CODIGO

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 30-03-2010
Avatar de Softweb
Softweb Softweb is offline
Miembro
 
Registrado: ago 2008
Posts: 46
Poder: 0
Softweb Va por buen camino
Muchas gracias Caro

De tanto mirar el código no veía lo mas elemental, me estoy asiendo viejo y se me despistan la neuronas.

Funciona perfectamente, eres un maestro del SQL.

Saludos y gracias.
Responder Con Cita
  #4  
Antiguo 30-03-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por Softweb Ver Mensaje

... eres un maestro del SQL.
Je,je,je
Solo aclarar que Caro es mujer y no hombre.

Amiga Caro quizás deberías modificar la palabra "Moderador" por "Moderadora"..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 01-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
..................
Amiga Caro quizás deberías modificar la palabra "Moderador" por "Moderadora"..


Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 02-04-2010
Avatar de Softweb
Softweb Softweb is offline
Miembro
 
Registrado: ago 2008
Posts: 46
Poder: 0
Softweb Va por buen camino
Hola

Pues si que es un detalle que no vi , de todas forma hombre o mujer sigo diciendo lo mismo, que eres una maestra y teniendo en cuenta el mundo machista de la programación mucho mas.

Saludos.
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
usando LEFT JOIN o RIGHT JOIN alcides SQL 8 03-05-2007 17:35:46
left join e inner join duda Patricio SQL 0 26-04-2007 22:06:43
Duplicados con LEFT OUTER JOIN Cabanyaler MS SQL Server 11 17-11-2005 08:46:23
LEFT INNER JOIN & RIGHT INNER JOIN Cabanyaler MS SQL Server 11 07-11-2005 18:09:58
LEFT OUTER JOIN e INNER JOIN Juntos alcides SQL 3 08-07-2005 18:06:27


La franja horaria es GMT +2. Ahora son las 01:58:03.


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