Lo de los no coincidentes, sólo de la empresa S3EMPR=010, es sencillo:
SELECT  *  FROM  MAPRRC(tabla1)  EXCEPTION JOIN  MBPRRA(tabla2) ON
           MAPRRC.S3EMPR = MBPRRA.EKEMPR
AND  MAPRRC.S3JRNB = MBPRRA.EKJRNB
WHERE S3EMPR=10

Lo que no entiendo es porqué no te devuelve todos los no coincidentes, en
concreto los de la empresa 5 y la mayoría de la empresa 1.
Pero lo más extraño es que te devuelva el registro (10, 4) o el (30, 999),
que no existen en ninguna de las dos tablas.
Como no creo que SQL sea capaz de inventarse registros que no existan, se
me ocurren varias posibilidades:

* Te has equivocado al redactar el mensaje.
* Quizá por un problema de OVRDBF o de listas de bibliotecas, los ficheros
realmente utilizados no son los que tu te crees.
* La sentencia utilizada no es exactamente la que has pegado en el mensaje.

Repite el ensayo, tanto de las tablas individuales como del join, en una
sesión nueva, calificando las tablas con el nombre de las bibliotecas.

Prueba otra alternativa, menos eficiente, a ver los resultados:
SELECT  *  FROM  MAPRRC(tabla1)  WHERE NOT EXISTS(SELECT * FROM
MBPRRA(tabla2) WHERE
           MAPRRC.S3EMPR = MBPRRA.EKEMPR AND  MAPRRC.S3JRNB = MBPRRA.EKJRNB
)

Si el EXCEPTION JOIN sigue dando malos resultados y en cambio el NOT EXISTS
los produce buenos, ponte en contacto con el CAS porque te falta (o te
sobra) alguna PTF.

Si ambas pruebas dan resultados incorrectos, y siguen inventando registros,
puedes optar por consultar con el CAS, crear una nueva religión...


Saludos,
                  ---------------------------
                    Santiago Martí
                       Dusen, S.A.
                  ---------------------------




                                                                       
             "Manolo Rubio                                             
             Caparros/ORGANIZA                                         
             CION Y                                                   Para
             SISTEMAS/GRUPO            [email protected]        
             ZAMORA"                                                    cc
             <[EMAIL PROTECTED]                                         
             or43.com>                                              Asunto
             Enviado por:              Re:     ¿Como obtener los registros
             forum.help400-adm         NO COINCIDENTES entre dos tablas
             [EMAIL PROTECTED]             con la misma CLAVE con sentencias
                                       SQL?                            
                                                                       
             16/03/2006 11:26                                          
                                                                       
                                                                       
                Por favor,                                             
                responda a                                             
             [EMAIL PROTECTED]                                         
                  bios.es                                              
                                                                       
                                                                       





Haciendo exactamente esto :

SELECT  *  FROM  MAPRRC(tabla1)  EXCEPTION JOIN  MBPRRA(tabla2) ON
           MAPRRC.S3EMPR = MBPRRA.EKEMPR
AND  MAPRRC.S3JRNB = MBPRRA.EKJRNB

Da como resultado esto : Que no es correcto segun los datos existentes en
las dos tablas descritas abajo, perdonad la insistencia , pero ya es
cuestion de no se que.......
Aparte solo quiero los NO COINCIDENTES de la empresa S3EMPR=010

¿ Como lo veis ?

S3EMPR    S3JRNB
   010                    4
   010                     13
   010                     999
   010                     19
   010                     20
   010                     21
   010                     24
   010                     25
   010                     26
   001                    1
   010                     28
   030                     999

TABLA 1 (MAPRRC)
(Embedded image moved to file: pic00041.gif)
TABLA2 (MBPRRA)
(Embedded image moved to file: pic18467.gif)


A partir del 01-01-2006 mi correo electronico es :
[EMAIL PROTECTED]

                                                                       
   Santiago G Martí                                                  
   <[EMAIL PROTECTED]>          Para:        [email protected]    
   Enviado por:               cc:                                      
   forum.help400-admi         Asunto:        Re:    ¿Como obtener los
   [EMAIL PROTECTED]       registros NO COINCIDENTES entre dos tablas con la
                      misma CLAVE con sentencias SQL?                  
                                                                       
   16/03/2006 10:23                                                    
   Por favor,                                                          
   responda a                                                          
   forum.help400                                                       
                                                                       









Hola Manolo,

Suponiendo que las claves primarias de las tablas son respectivamente:
S3EMPR, S3JRNB y EKEMPR, EKJRNB, la forma sería:

Select * from tabla1 a exception join tabla2 b on a.S3EMPR = b.EKEMPR and
a.S3JRNB = b.EKJRNB

Los calificadores a y b, en este caso, no son necesarios, ya que los campos
tienen diferentes nombres, pero prefiero utilizarlos por claridad.

En caso de que los campos de clave no fueran los que yo he puesto,
sustitúyelos por los que correspondan, ya sean dos o siete, la cuestión es
indicar la forma de determinar si los registros coinciden o no.


Saludos,
                 ---------------------------
                   Santiago Martí
                      Dusen, S.A.
                 ---------------------------







            "Manolo Rubio
            Caparros/ORGANIZA
            CION Y                                                   Para
            SISTEMAS/GRUPO            [email protected]
            ZAMORA"                                                    cc
            <[EMAIL PROTECTED]
            or43.com>                                              Asunto
            Enviado por:              Re:   ¿Como obtener los registros
            forum.help400-adm         NO COINCIDENTES entre dos tablas
            [EMAIL PROTECTED]             con la misma CLAVE con sentencias
                                      SQL?

            16/03/2006 09:31


               Por favor,
               responda a
            [EMAIL PROTECTED]
                 bios.es







Hola Santiago,

Estamos en V5R3, como no estoy muy puesto en este tema te agradecería me
concretaras algo más las sentencias :
Los campos de la tabla 1(MAPRRC) son : S3EMPR, S3JRNB, S3DESC ....... los
de la tabla 2 (MBPRRA) son : EKEMPR, EKJRNB, EKFBAJ
Lo que necesito es obtener como resultado, aquellos registros de la tabla 1
que no existan en la tabla 2 (la tabla 2 es una tabla de apoyo donde se
registran las bajas de la tabla 1). Es una perogrullada  pero no sabemos
hacerlo en SQL (luego tendremos que traducirlo a SQL Server)

Perdona el abuso y muchas gracias.


A partir del 01-01-2006 mi correo electronico es :
[EMAIL PROTECTED]


  Santiago G Martí
  <[EMAIL PROTECTED]>           Para:        [email protected]
  Enviado por:                cc:
  forum.help400-admin         Asunto:        Re:  ¿Como obtener los
  @combios.es         registros NO COINCIDENTES entre dos tablas con la
                      misma CLAVE con sentencias SQL?

   16/03/2006 08:51
  Por favor, responda
  a forum.help400










Hola Manolo, no se si esto funciona en versiones anteriores a V5R3:

Select  *  from tabla1 exception join tabla2 using(CodEmpr, CodPromo)

y a la viceversa

Select  *  from tabla2 exception join tabla1 using(CodEmpr, CodPromo)


Saludos,
                ---------------------------
                  Santiago Martí
                     Dusen, S.A.
                ---------------------------




           "Manolo Rubio
           Caparros/ORGANIZA
           CION Y                                                   Para
           SISTEMAS/GRUPO            [email protected]
           ZAMORA"                                                    cc
           <[EMAIL PROTECTED]
           or43.com>                                              Asunto
           Enviado por:              ¿Como obtener los registros NO
           forum.help400-adm         COINCIDENTES entre dos tablas con
           [EMAIL PROTECTED]             la misma CLAVE con sentencias SQL?


           16/03/2006 08:28


              Por favor,
              responda a
           [EMAIL PROTECTED]
                bios.es










Buenos Dias,









Perdonad la trivialidad de la pregunta pero es mi primera excursión a
SQL. Tengo 2 tablas los campos en negrita son las claves, la pregunta es
: ¿como defino las sentencias de SQL  para obtener como resultado los
registros no coincidentes?. Es decir quiero obtener los registros de la
tabla1 que no existen en la tabla2. Los ficheros son multiempresa.


Tabla 1 : CodEmpr, CodPromo, Descrip, ......


Tabla 2 : CodEmpr, CodPromo, FechaBaja, ......



 Muchas gracias x adelantado.














__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400




__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400

Attachment: pic00041.gif
Description: GIF image

Attachment: pic18467.gif
Description: GIF image

Responder a