FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Resta de Tablas con SQL
Hola a todos, quisiera saber como puedo hacer una resta de tablas con SQL.
Hace mucho tiempo lo hice pero ahora no recuerdo como fué y no encuentro la aplicacion en la que lo lleve a cabo. de antemano gracias a todos. Última edición por agova fecha: 24-11-2003 a las 20:26:00. |
#2
|
||||
|
||||
Hola.
Perdona, pero ¿ que es una resta de tablas ? Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
|||
|
|||
con resta de tablas me refiero a lo siguiente:
Tengo informacion en dos tablas que llamare T1 y T2 y quiero hacer la operacion de T1-T2, con lo cual quiero decir que me devuelva los registros de T1 sin los registros comunes que se encuentran en T2 (resta) |
#4
|
||||
|
||||
Yo no sé si existe alguna operación SQL estándar para esto pero, suponiendo que las tablas tienen la misma estructura y un campo llave id podrías intentar con
Código:
select * from T1 where id not in (select id from T2) |
#5
|
|||
|
|||
Gracias Roman
Efectivamente es la forma como lo estaba atacando, esta es mi consulta: SELECT ORDENP,BULTO FROM PRODUCCIONC WHERE ORDENP NOT IN(SELECT ORDENP,BULTO FROM ORDENP) pero al abrirla me da el siguiente error: Subselect has too many fields por eso me decidi a exponerla en este foro. |
#6
|
||||
|
||||
Cita:
Y no sé si es error de "dedo" pero en la subconsulta después de FROM debe ir el nombre de la segunda tabla y no del campo. // Saludos |
#7
|
|||
|
|||
La tabla OrdenP tiene como super llave los campos OrdenP y Bulto
y la tabla ProduccionC tiene como super llave los Campos OrdenP, Bulto, y Operacion |
#8
|
||||
|
||||
Hola.
Creo que para estos casos está el operador EXISTS pero nunca lo he utilizado. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#9
|
|||
|
|||
Algo importante es que necesito verificar que ambos campos de OrdenP sean verifcados a la vez ya que estos forman una super llave.
Por tanto creo que hacer la cosnulta de este modo no es lo correcto: SELECT ORDENP,BULTO FROM PRODUCCIONC WHERE ORDENP NOT IN(SELECT ORDENP FROM ORDENP WHERE ULTIMA=38) AND BULTO NOT IN(SELECT BULTO FROM ORDENP WHERE ULTIMA=38) ya que verifica aisladamente primero la OrdenP y despues el Bulto Última edición por agova fecha: 24-11-2003 a las 21:27:01. |
|
|
|