Código SQL:
son tres tabals muy simples y la estructura se ve al mirar los inserts, no es la gran cosa.Ver original
INSERT INTO USUARIO(COD,NOMBRE) VALUES ('AA','PEDRO'); INSERT INTO USUARIO(COD,NOMBRE) VALUES ('BB','ALE'); INSERT INTO USUARIO(COD,NOMBRE) VALUES ('CC','JUAN'); INSERT INTO ENCABEZADO(COD,CODU) VALUES ('100','AA'); INSERT INTO ENCABEZADO(COD,CODU) VALUES ('200','CC'); INSERT INTO ENCABEZADO(COD,CODU) VALUES ('300','BB'); INSERT INTO ENCABEZADO(COD,CODU) VALUES ('400','AA'); INSERT INTO DETALLE(COD,IMP,CODS) VALUES('100',10,'A'); INSERT INTO DETALLE(COD,IMP,CODS) VALUES('100',20,'B'); INSERT INTO DETALLE(COD,IMP,CODS) VALUES('200',30,'A'); INSERT INTO DETALLE(COD,IMP,CODS) VALUES('300',10,'C'); INSERT INTO DETALLE(COD,IMP,CODS) VALUES('400',20,'E');
Tengo estos dos selects:
Código SQL:
Como se daran cuenta ambos devuelven 50, estos select en mySQL funcionan y ambos devuelven el valor 50 como tiene que ser, PERO cuando estoy trabajando en oracle (uso jdeveloper) NOOO, devuelven 100 el primer select y 200 el segundo !!!!! QUE PASA? , SOY NUEVO en oracle y no entiendo como funciona.Ver original
SELECT SUM(D.IMP) FROM DETALLE D,ENCABEZADO E WHERE E.CODU = (SELECT DISTINCT COD FROM USUARIO WHERE NOMBRE='PEDRO') AND E.COD=D.COD; SELECT SUM(D.IMP) FROM USUARIO U,ENCABEZADO E,DETALLE D WHERE U.COD=E.CODU AND E.COD=D.COD AND U.NOMBRE='PEDRO'
EDITO: Probe lo mismo en sql server 2005 y funciona igual que en mySQL, por lo tanto ORACLE FUNCIONA DIFERENTE, ¿ALGUIEN ME PODRIA EXPLICAR MAS O MENOS "QUE ES LO DIFERENTE EN ESTE MOTOR"?.
Desde ya muchas gracias, este es el primer mensaje que posteo, espero su ayuda.