Hola, hasta hace poco siempre trabaje con mysql, pero ahora estoy realizando un trabajito y es necesario que emplee oracle express edition 10g, mi duda viene de lo siguiente, tengo los siguientes inserts
Código SQL:
Ver originalINSERT 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');
son tres tabals muy simples y la estructura se ve al mirar los inserts, no es la gran cosa.
Tengo estos dos selects:
Código SQL:
Ver originalSELECT 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'
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.
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.