![]() |
Duda con SQL SELECT
Hola amigos, vengo trabajando mucho tiempo con Access y nunca habia tenido problemas. Ya empece con SQL Server Express 2005 y me encuentro que cuando hago esta clausula:
Yo creo que tendria que devolverme los siguientes campos: - Value - Concepto - A.idObra - B.idObra Pero me esta devolviendo estos campos: - Value - Concepto - idObra - idObra_1 Al final el resultado no es el deseado, me devuelve todos los records de ObraVarios. Alguien sabe el porque?? GRACIAS |
Aparentemente está bien. Vamos, que yo creo que en Oracle funciona como indicas.
De todas formas prueba de este otro modo:
|
Probe lo que me dijistes y nada, me devuelve lo mismo:
idObra idObra_1 Otra sugerencia?? |
Ahora que me fijo en la consulta... los valores de b.idObra siempre serán los mismos que los de a.idObra, y como las campos se llaman igual, pues te devuelve un segundo campo idObra_1 que debe ser el b.idObra y lo renombra para evitar conflictos.
Si quisieras cambiar el nombre que se muestra para este campo sería así:
|
Si, ahora me renombra el nombre.
pero no me hace la condicion y me sigue devolviendo. En access eso no importa Cuando haces esa clausula como te dijo te devuelve 2 campos automaticamente: a.idObra b.idObra SQL debiera hacerlo tambien no?? |
Cita:
Supongo que te devolverá el mismo valor que tiene el idObra de ObraVarios. Cita:
|
Pues no que yo sepa. Oracle al menos devuelve el nombre del campo tal cual, sin incluir la tabla o los alias, como mucho si el nombre está repetido le añade "_1".
|
Disculpen que suene atrevido, pero ¿Que necesidad hay de devolver un campo repetido?
Si ya estas mostrando el campo A.idObra para que mostrar el campo B.IdObra si este tiene el mismo valor que el de la tabla anterior (A)? La SQL debería ser:
Saludos, |
Si es muy buena todas las sugerencias y en especial la ultima,
Lo que pasa es que en el Grid no me hace el A.idObra=B.idObra Me pone todos los valores de todas las obras, no se porque no filtra. Al final he tenido que hacerlo manual.
de todas formas gracias por todo. Si cada vez que programe con SQL tendre estos problemas, pues no se, ninguna de estas cosas me pasaba con base de datos en Access. Gracias |
pues que tengas dos campos iguales y que SQL Server te regrese uno agregándole un "_1" para evitar incongruencias, a mi me parece que es más una ventaja que un problema...
Problema es que tengas dos campos iguales con el mismo nombre... SQL Server es infinitamente mucho mejor que Access para aplicaciones de bases de datos. P.D. No solo SQL Server, cualquier otro motor de bases de datos es mejor que utilizar Access para una aplicación de bases de datos y multiusuario. |
La franja horaria es GMT +2. Ahora son las 01:53:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi