Está en la página 1de 8

CREATE TABLE FACTURA ( ID_FACTURA NUMERIC NOT NULL, NUM_FACTURA NUMERIC, FECHA DATE, ID_CLIENTE NUMERIC, CONSTRAINT PK_FACTURA

PRIMARY KEY (ID_FACTURA) );

CREATE TABLE PRODUCTO ( ID_PRODUCTO NUMERIC, CODIGO VARCHAR2(5), NOMBRE VARCHAR2(20), STOCK NUMERIC, PU DECIMAL(18,2), CONSTRAINT PK_PEORDUCTO PRIMARY KEY (ID_PRODUCTO) );

CREATE TABLE DETALLE ( ID_FACTURA NUMERIC, ID_PRODUCTO NUMERIC, CANTIDAD INT, PU DECIMAL(18,2), CONSTRAINT PK_DETALLE PRIMARY KEY (ID_FACTURA,ID_PRODUCTO)

);

ALTER TABLE DETALLE ADD CONSTRAINT FK_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURA (ID_FACTURA) ALTER TABLE DETALLE ADD CONSTRAINT FK_ID_PRODUCTO FOREIGN KEY (ID_PRODUCTO) REFERENCES PRODUCTO (ID_PRODUCTO)

INSERT INTO FACTURA VALUES (1,'0007','01/01/2012',1) INSERT INTO FACTURA VALUES (2,'0009','10/01/2012',2) INSERT INTO FACTURA VALUES (3,'0014','11/01/2012',1) INSERT INTO FACTURA VALUES (4,'0056','13/01/2012',3)

INSERT INTO PRODUCTO VALUES (1,'PR001','ARROZ',100,0.5) INSERT INTO PRODUCTO VALUES (2,'PR002','MAIZ',150,0.75) INSERT INTO PRODUCTO VALUES (3,'PR003','MANTECA',45,0.58) INSERT INTO PRODUCTO VALUES (4,'PR004','FIDEOS',38,0.26)

INSERT INTO DETALLE VALUES (1,3,1,0.58) INSERT INTO DETALLE VALUES (1,1,2,0.5) INSERT INTO DETALLE VALUES (2,4,1,0.26) INSERT INTO DETALLE VALUES (3,1,5,0.5) INSERT INTO DETALLE VALUES (3,3,6,0.58) INSERT INTO DETALLE VALUES (3,2,3,0.75) INSERT INTO DETALLE VALUES (4,4,7,0.26) INSERT INTO DETALLE VALUES (4,3,3,0.58)

INSERT INTO DETALLE VALUES (4,2,4,0.75) --select * from cliente inner join grupo on grupo.idgrupo=cliente.idgrupo //union de tablas --select idgrupo,count(*) from cliente group by idgrupo //para agrupar sin que se repita create table Ganado ( id numeric, nombre varchar(30), id_Padre numeric, id_madre numeric ) insert into Ganado values (1,'Torivio',0,0); insert into Ganado values (2,'Lulu',0,0); insert into Ganado values (3,'Claudia',1,2); insert into Ganado values (4,'wili',1,2); insert into Ganado values (5,'lupe',1,2); insert into Ganado values (6,'juana',1,2); insert into Ganado values (7,'chana',0,5);

select nombre, (select nombre from ganado p where p.id=ganado.id_padre) as padre, select nombre,(select nombre from ganado m where m.id=ganado.id_madre) as madre from ganado

-select h.nombre, p.nombre as padre, m.nombre as madre from ganado h

left join ganado p on h.id_padre=p.id left join ganado m on h.id_madre=m.id

create table PcKardex ( id numeric, id_cliente numeric, debe numeric(12,2), haber numeric(12,2), id_asignado numeric )

insert into PcKardex values (1,1,100,0,0) insert into PcKardex values (2,2,200,0,0) insert into PcKardex values (3,4,200,0,0) insert into PcKardex values (4,6,300,0,0) insert into PcKardex values (5,2,400,0,0) insert into PcKardex values (6,3,600,0,0) insert into PcKardex values (7,1,400,0,0) insert into PcKardex values (8,2,600,0,0) insert into PcKardex values (9,2,0,10,8) insert into PcKardex values (10,6,0,60,4) insert into PcKardex values (11,2,0,100,2) insert into PcKardex values (12,1,0,50,1) insert into PcKardex values (13,4,0,50,3) insert into PcKardex values (14,6,0,50,4)

select id,debe-nvl((select sum(pc2.haber) from PcKardex pc2 where pc2.id_asignado=PcKardex.id),0) from PcKardex where PcKardex.id_asignado = 0 group by pck.id

--consulta ya valida para esta tabla select pck.id,sum(pck.debe)-nvl(sum(pago.haber),0) from pckardex pck left join PcKardex pago on pago.id_asignado=pck.id where pck.id_asignado = 0 group by pck.id ---- fin de la consulta valida

CREATE TABLE IV_KARDEX ( id_producto numeric, debe numeric(12,2), haber numeric(12,2) )

insert into IV_KARDEX (id_producto,debe) values (1,100) insert into IV_KARDEX (id_producto,debe) values (2,350) insert into IV_KARDEX (id_producto,debe) values (3,550)

insert into IV_KARDEX (id_producto,haber) values (1,50) insert into IV_KARDEX (id_producto,haber) values (2,20) insert into IV_KARDEX (id_producto,haber) values (2,70)

select id_producto,sum(debe),sum(haber) from iv_kardex group by id_producto

select id_producto,sum(debe)-sum(haber) from iv_kardex group by id_producto

select id_producto,sum(debe),nvl(sum(haber),0) from iv_kardex group by id_producto

id cliente = INSERT INTO CLIENTE VALUES ( &A1& , &B1& , &C1& , &D1& , &E1& , &F1& );

Sacara los 10 ultimos registros de la base de datos sin utilizer el order by select * from cliente where rownum <= 10 --para vizualizar los 10 primeros registros select * from cliente where idcliente in (1,2,4,6,8) select * from cliente where idcliente in (select idgrupo from cliente) select * from cliente where rownum >= ((select count (*) from cliente)-10) select * from cliente where rowid IN (select max rowid from cliente)

select * from ( select * from cliente order by codigo desc )where ROWNUM >= 90;

select * from cliente where rownum <= 10

select * from cliente where idcliente = ((select max(idcliente) from cliente) - 10)

CODIGO DE BASES DE DATOS DOCUMENTADO


--visualiza los primeros 10 registros select * from cliente where rownum <= 10 --visualizar el ultimo registro ingresado select * from cliente where idcliente = ((select max(idcliente) from cliente) - 10); select * from cliente where idcliente = (select max(idcliente) from cliente) --PARA ELIMINAR DATOS DE UNA TABLA DELETE FROM CLIENTE WHERE IDCLIENTE IN (21,22,23) --ME MUESTRA TODOS LOS REGISTROS MENOS LOS 10 ULTIMOS SELECT * FROM CLIENTE WHERE ROWNUM < (SELECT COUNT(*)-10 FROM CLIENTE) --ME MUESTRA LOS ULTIMSO 10 REGISTROS DE UNA TABLA SELECT * FROM CLIENTE WHERE IDCLIENTE NOT IN (SELECT IDCLIENTE FROM CLIENTE WHERE ROWNUM <= (SELECT COUNT (*)-10 FROM CLIENTE)) --VISUALIZA LOS ULTIMOS REGISTROS DE UNA TABLA SELECT * FROM CLIENTE WHERE IDCLIENTE >= ((SELECT COUNT(*) FROM CLIENTE)-10) --VISUALIZAR LOS REGISTROS INTERMEDIOS DE UNA TABLA SELECT * FROM CLIENTE WHERE IDCLIENTE >=11 AND IDCLIENTE <= 90 SELECT * FROM CLIENTE WHERE IDCLIENTE IN (SELECT IDCLIENTE FROM CLIENTE WHERE ROWNUM <= (SELECT COUNT(*)-10 FROM CLIENTE) ) AND IDCLIENTE NOT IN (SELECT IDCLIENTE FROM CLIENTE WHERE ROWNUM <= 10)

--para hacer una paginacion select * from ( select a.*, rownum rnum from ( SELECT IDCLIENTE,NOMBRE FROM CLIENTE) a where rownum < ((2 * 10) + 1 ) )

SELECT * FROM ( SELECT A.*, ROWNUM row_number FROM ( SELECT IDCLIENTE, NOMBRE FROM CLIENTE )A WHERE ROWNUM < ((1 * 10) + 1 ) ) WHERE row_number >= ((0*10)+1)

PARA SACAR POR SEPARADO EL NOMBRE Y APELLIDO CUANDO A ESTE SE LE INGRESA EN UNA SOLA select nombre, length(nombre), substr(nombre,1,(instr(nombre, ' '))), substr(nombre,instr(nombre,' '), length(nombre))from cadenas select nombre, substr(nombre,1,instr(nombre,' ')), substr(nombre,instr(nombre,' ')+1) from cadenas select nombre, substr(nombre,1,instr(nombre,' ')), LTRIM(substr(nombre,instr(nombre,' ')+1))||5 from cadenas PARA SELECCIONRA LA PRIMERA LETRA DEL NOMBRE Y CONTAR EL NUMERO DE LETRAS DE ESE NOMBRE SELECT NOMBRE, SUBSTR (NOMBRE, 1,1) || (INSTR (NOMBRE,' ')-1)|| SUBSTR((substr(nombre,instr(nombre,' ')+1)),1,1)|| LENGTH(substr(nombre,instr(nombre,' ')+1)) FROM CADENAS

También podría gustarte