martes, 30 de agosto de 2011

[INF-272] TAREA3: 33 Consultas Simples

EJERCICIOS
--1. Listar todos los funcionarios.
select * from funcionario

--2. Listar las unidades que tengan el texto "EDUCACION" en su descripción
select * from unidad where descripcion LIKE '%EDUCACION%'

--3. Listar el código del funcionario que tiene como nombre: "LUISA REYES".
select item from funcionario where nombre='Luisa Reyes'

--4. Listar todos los distritos.
select * from distrito

--5. Listar los proyectos que se iniciaron en fecha "03-30-2010".
select * from proyecto where fechainicio='03-30-2010'

--6. Listar los distritos que tengan el texto "CALIDAD DE VIDA MEDIA".
select * from distrito where descripcion= 'CALIDAD DE VIDA MEDIA'  

--7. Listar los ítems de funcionarios cuyos telefonos se inicie con “732”.
select f.nombre, t. nrotelefono from funcionario f, telefonof t where f.item=t.item
and t.nrotelefono like '732%' 

--8. Listar los proyectos cuyo código termine con “1?”.
select *  from proyecto where codp like '%1'

--9. Listar los proyectos cuyo carnet empiece con “0000”.
select *  from proyecto where codp like '0000%'


--10. Listar todas las unidades.
select * from unidad

--11. Determinar la cantidad de pasos que siguió el proyecto  “000006”
select count(*) from seguimiento where codproy='000006'

--12. Determinar la cantidad de documentos con extension “aplicable”
select count (*) from documento where extencion='aplicable'

--13. Determinar la cantidad de documentos tipo “Minuta Descriptiva” y extension “aplicable”
select count (*) from documento where tipo_contenido='Minuta Descriptiva' and
extencion='aplicable'

--14. Listar todos los proyectos que se iniciaron a partir del ‘20/12/1990’
select * from proyecto where fechainicio > 20/12/1990

--15. Listar todos los documentos correspondientes al proyecto ‘000009’
select d.nombre, d.descripcion from documento d, seguimiento s
where  s.codproy='000009' and s.coddoc=d.codd

--16. Cuantos y cuales son pasos en los que intervino el funcionario 146?.
select count(*) from seguimiento s, documento d
where  s.item='1467'

--17. Quién es el funcionario 104?
select * from funcionario f  where  f.item='104'

--18. Cuántos registros tiene la tabla unidad?
select count (*) from unidad

--19. El remanente del proyecto ‘000005’ esta correcto?
select * from presupuesto where remanente is not null

--20. Cuánto se presupuesto en todos los proyectos?
select sum(costofin+costoini) from presupuesto

--21. Cuántos proyectos se llevan a cabo en el distrito 0006? (4 filas)
select count (*) from dist_proy  where nrodist='0006'

--22. Cuántos distritos son del tipo ‘CALIDAD DE VIDA BAJA’?
select count (*) from distrito  where descripcion='CALIDAD DE VIDA BAJA'

--23. Mostrar los proyectos que se adjudico la empresa ‘Coca Cola’
select p.nombre from proyecto p,adjudicacion a, empresa e
where e.nombre='coca-cola' and e.nit=a.nit and a.codproy=p.codp

--24. Determinar el monto entre todos los proyectos adjudicados por la empresa ‘000008’?
select sum(pr.costofin) from adjudicacion a, presupuesto pr, proyecto p
where a.nit='000008' and a.codProy=p.codp and p.codp= pr.codproy

--25. Cuántos son los proyectos presupuestados con mas de 15.000Bs?
select p.nombre from proyecto p, presupuesto pr where pr.costoini>15000

--26. Cuántos son los proyectos financiados por el Banco Mundial u ONG?
select count(*) from presupuesto pr , proyecto p, tipo_financiamiento tp
where tp.descripcion='Banco mundial' or tp.descripcion='ong' and p.codp=pr.codproy
and tp.nrocp=pr.nro_cp 

--27. Mostrar los proyectos financiados por la empresa ‘SOBOCE’?
select p.nombre from proyecto p,adjudicacion a, empresa e
where e.nombre='SOBOCE' and e.nit=a.nit and a.codproy=p.codp

--28. Determinar los proyectos con monto superior a 20.000 de costo inicial?
select p.nombre from proyecto p, presupuesto pr where pr.costoini>20000

--29. Determinar la cantidad de funcionarios de la unidad ’cobranzas’?
select count(*) from funcionario where nombreu='cobranza'

--30. Mostrar la unidad en la que se encuentra el funcionario ‘MENDEZ PRIETO VICTOR’?
select nombreu from funcionario where nombre='mendez prieto victor'

--31. Determinar el numero de usuarios cuyo idUsuario empieza con el carácter ‘M’?
select count(*) from usuario where idusuario like 'M%'

--32. Determinar la cantidad de teléfonos del funcionario104?
select count(*) from telefonof  where item=104

--33. Mostrar los números de teléfono de la empresa 524413?
select count(*) from telefonoe  where nit=524413

[INF-272] INVESTIGACION: INNER, LEFT, RIGHT JOIN

CONSULTAS DE UNION

INNER JOIN

A partir de este momento, empezamos esa propiedad de las bases de datos relacionales y le damos la bienvenida a las uniones (JOINS es su nombre es inglés). Los tipos de uniones que podemos realizar sonINNER JOINS (Uniones Interiores) y LEFT JOINS (Uniones por la Izquierda).

Las uniones más comunes con las del tipo Interior, es decir, INNER JOINS, las cuales son las más sencillas. La forma en la que hacemos un INNER JOIN es simplemente especificando las columnas de las tablas de las que queremos hacer la consulta, escribiendo explícitamente la palabra INNER JOIN inmediatamente después, o simplemente escribiendo una coma entre la tabla uno y la tabla dos, posteriormente DEBEMOS especificar una condición “WHERE” a cumplir. Así por ejemplo, imaginemos la siguiente consulta:

SELECT gente.nombre, gente.apellido, empresa.sueldo, empresa.cargo FROM gente, empresa WHERE gente.cod_empleado = empresa.cod_empleado;

La consulta anterior le dice a MySQL que SELECCIONE de la tabla gente, tanto la columna nombre como la columna apellido; y de la tabla empresa, la columna sueldo y la columna cargo EN DONDE la columna cod_empleado de la tabla gente sea igual a la columna cod_empleado de la tabla empresa. Esta misma consulta podría haberse hecho de la siguiente manera:

SELECT gente.nombre, gente.apellido, empresa.sueldo, empresa.cargo FROM gente INNER JOIN empresa ON gente.cod_empleado = empresa.cod_empleado;

Como verán, la forma de especificar las tablas de donde estamos sacando la información es simplemente con un punto (.), especificando primero el nombre de la tabla y posteriormente el nombre de la columna, esto tanto después de la palabra SELECT, como después de la palabra WHERE.

LEFT JOIN

on uniones en las que le pedimos a MySQL que nos muestre los datos contenidos en las tablas inmiscuidas en la consulta, sin importar que, por ejemplo, en un par de filas el valor nulo (NULL) aparezca.

Contrario a los INNER JOINS, los LEFT JOINS no pueden llevar una condicionante WHERE. Las razones son, claro está, que para cumplir una condicionante WHERE, la consulta debe arrojar solamente los resultados que concuerden exactamente con la condición, y nuestro deseo es precisamente lo contrario.

La sintaxis de los LEFT JOINS es bastante similar a la de los INNER JOINS, salvo que debemos utilizar la sentencia ON forzosamente, de la siguiente manera:

SELECT tabla1.columna1, tabla2.columna1 FROM tabla1 LEFT JOIN tabla2 ON tabla1.columna3 = tabla2.columna1;

Finalmente, como recomendación habremos de decir que los LEFT JOINS son herramientas que podemos utilizar en casos especiales. Sin embargo, debemos tener cuidado en el orden en el que especificamos las tablas en un LEFT JOIN, ya que si la tabla de la izquierda es la tabla que contiene,… digamos menos datos, y la de la derecha es la que contiene más, las filas que no concuerden serán ignoradas por MySQL.

RIGHT JOINs

Funciona de forma identica que los LEFT JOIN con la particularidad que toman como referencia los elementos de la derecha y no de izquierda.

lunes, 29 de agosto de 2011

[INF-272] INFORME: Generar Reportes Con el IREPORT 3.7.4

PASO 1 .- Crear Una conexion ODBC en Panedel De control -> Herramientas Administrativas Orígenes de datos ODBC
PASO 2 .- Introducir un nombre de Conexión y especificar la base de datos con la que haremos la conexión conjuntamente con el nombre del servidor
PASO 3 .- Seleccionar Finalizar y probar la conexión
PASO 4 .- Acceder al Ireport 3.7.4 y crearuna nueva conexión direccionando nuestra conexion ODBC en JDBC url
PASO 5 .- Una vez hecha correcta la conexión generear un consulta
PASO 6 .- Seleccionar los campos que se mostraran
PASO 7 .- Si no se los va a agrupar seleccionar siguiente .
PASO 8 .- Una vez generada la consulta ponemos previsulizar para ver el reporte de nuestra base de datos

[INF-272] PROYECTO: Sistema de Administración para Microempresas Dedicadas A La Produccion Y Venta De Alimentos

1.- GENERAR ESQUEMA
2.- SCRIP sql
CREATE DATABASE DB_MVAB
USE DB_MVAB

CREATE TABLE SALAS(
  id_sala int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  ubicacion varchar(255)
)

CREATE TABLE MESAS(
  id_mesa int not null,
  obj_version int,
  estado_bd bit,
  nro_mesa int,
  ubiacion_x int,
  ubiacion_y int,
  estado varchar(255),
  id_sala int
)

CREATE TABLE PEDIDOS(
  id_comanda int not null,
  obj_version int,
  estado_bd bit,
  nro_pedido int,
  importe    numeric(19,2),
  estado varchar(255),
  id_mesa int,
  id_mesero int
)

CREATE TABLE VENTAS(
  id_venta int not null,
  obj_version int,
  estado_bd bit,
  fecha datetime, 
  importe    numeric(19,2),
  tipo varchar(255),
  nro_factura int, 
  id_pedido int,
  id_contrato int,
  id_cliente int,
  id_tarifa int
)

CREATE TABLE TARIFA( 
  id_tarifa int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  descuento varchar(255)
)

CREATE TABLE CLIENTES( 
  id_cliente int not null,
  obj_version int,
  nombre varchar(255),
  nit varchar(255),
  razon_social varchar(255)
)

CREATE TABLE MESEROS( 
  id_mesero int not null,
  obj_version int,
  estado_db bit,
  nombre varchar(255),
  apaterno varchar(255),
  amaterno varchar(255)
)

CREATE TABLE LINEA_PEDIDO( 
  id_comanda int not null,
  cantidad int,
  id_producto int
)

CREATE TABLE ACTIVIDADES( 
  id_mesero int not null,
  obj_version int,
  nombre_actividad varchar(255),
  tiemponormal numeric (19,2),
  tiempominimo numeric (19,2),
  tiempoestandar numeric (19,2),
  id_producto int, 
  actividad_posicion int
)

CREATE TABLE SUMINISTROS( 
  id_comprobante int not null,
  obj_version int,
  estado_bd bit,
  fecha datetime,
  importe numeric (19,2),
  nro_factura int, 
  id_proveedor int
)

CREATE TABLE CONTRATOS( 
  id_contrato int not null,
  obj_version int,
  estado_bd bit,
  nro_contrato int,
  fecha_pago datetime,
  nro_personas int,
  fecha_evento datetime,
  hora_evento datetime,
  lugar varchar (255),
  tipo_servicio varchar (255),
  monto_total numeric (19,2),
  id_cliente int,
  id_tarifa int,
  id_orden int
)

CREATE TABLE LINEA_COTIZACION( 
  id_contrato int,
  cantidad int,
  id_producto int
)

CREATE TABLE PRODUCTOS( 
  id_producto int not null,
  obj_version int,
  estado_bd bit,
  codigo varchar (255),
  nombre varchar (255),
  cantidad numeric (19,2),
  precio numeric (19,2),
  precio_compra numeric (19,2),
  precio_presentacion numeric (19,2),
  peso_limpio numeric (19,2),
  id_unidad_almacen int,
  id_unidad_receta int,
  id_unidad_venta int,
  id_comprobante int,
  id_almacen int,
  venta bit,
  compuesto bit,
  capacidad_lote numeric (19,2)
)

CREATE TABLE CATEGORIA_ITEM_PRODUCTO( 
  id_producto int,
  id_categoria int
)

CREATE TABLE PROVEDORES( 
  id_proveedor int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  direccion varchar(255),
  nit varchar(255),
  razon_social varchar(255),
  telefono varchar(255)
)

CREATE TABLE ORDENES_DESPACHO( 
  id_orden int not null,
  obj_version int,
  estado_bd bit,
  fecha datetime,
  estado bit
)

CREATE TABLE LINEA_DESPACHO_MANTELES( 
  id_orden int,
  cantidad int,
  id_mantel int
)

CREATE TABLE ALMACEN_PRODUCTO( 
  id_almacen int,
  id_producto int,
  cantidad_almacen numeric(19,2)
)

CREATE TABLE COMPOSICIONES( 
  id_producto int,
  cantidad_insumo numeric(19,2),
  id_insumo int
)

CREATE TABLE EMPLEADOS_PRODUCTO( 
  id_producto int,
  modl bit,
  modnas    bit,
  id_empleado int
)

CREATE TABLE CATEGORIAS( 
  id_categoria int not null,
  obj_version int,
  nombre varchar (255)
)

CREATE TABLE VAJILLA( 
  id_vajilla int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  tipo varchar(255),
  color varchar(255),
  cantidad int
)
CREATE TABLE LINEA_DESPACHO_VAJILLA( 
  id_orden int,
  cantidad int,
  id_vajilla int
)
CREATE TABLE MANTELES( 
  id_mantel int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  tipo varchar(255),
  color varchar(255),
  cantidad int
)
CREATE TABLE MANTELES( 
  id_mantel int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  tipo varchar(255),
  color varchar(255),
  cantidad int
)

CREATE TABLE ALMACENES( 
  id_almacen int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  ubicacion varchar(255)
)

CREATE TABLE TRASPASOS( 
  id_almacen int,
  id_producto int,
  id_almacen_destino int,
  nro_comprobante varchar(255),
  fecha datetime,
  cantidad numeric (19,2)
)

CREATE TABLE PRODUCTOS_SUBAREAS( 
  id_area int,
  tiempouso_lote numeric (19,2),
  costo_unidadenergetica numeric (19,2),
  consummo_hora numeric (19,2),
  costo_mantenimiento numeric (19,2),
  horasentremantenimiento numeric (19,2),
  id_producto int
)

CREATE TABLE AREAS( 
  id_area int not null,
  obj_version int,
  nombre varchar(255),
  porcentaje_asignado_mol numeric (19,2),
  porcentaje_asignado_modnes numeric (19,2),
  id_areapadre int,
  superficie_area numeric (19,2)
)

CREATE TABLE EMPLEADOS( 
  id_empleado int not null,
  obj_version int,
  estado_bd bit,
  nombre varchar(255),
  cargo varchar(255),
  dias_mes int,
  horas_dia numeric (19,2),
  horas_basico numeric (19,2),
  bonos numeric (19,2),
  numero_dominicales int,
  monto_dominicales numeric(19,2),
  descuentos numeric(19,2),
  liquido_pagable numeric(19,2)

)

alter table EMPLEADOS add
constraint pk_empleado primary key (id_empleado)

alter table AREAS add
constraint pk_areas primary key (id_area),
constraint fk_areas foreign key (id_areapadre)
              references AREAS(id_area)

alter table CATEGORIAS add
constraint pk_categoria primary key (id_categoria)

alter table PROVEDORES add
constraint pk_provedores primary key (id_proveedor)

alter table SUMINISTROS add
constraint pk_suministro primary key (id_comprobante),
constraint fk_provedor foreign key (id_proveedor)
              references PROVEDORES(id_proveedor)

alter table SALAS add
constraint pk_salas primary key (id_sala)

alter table MESAS add
constraint pk_mesas primary key (id_mesa),
constraint fk_salas foreign key (id_sala)
              references SALAS(id_sala)

alter table MESEROS add
constraint pk_meseros primary key (id_mesero)

alter table PEDIDOS add
constraint pk_pedidos primary key (id_comanda),
constraint fk_mesas foreign key (id_mesa)
              references MESAS(id_mesa),
constraint fk_mesero foreign key (id_mesero)
              references MESEROS(id_mesero)

alter table VAJILLA add
constraint pk_vajilla primary key (id_vajilla)

alter table ORDENES_DESPACHO add
constraint pk_ordenes_despacho primary key (id_orden)

alter table LINEA_DESPACHO_VAJILLA add
constraint fk_vajilla foreign key (id_vajilla)
              references VAJILLA(id_vajilla),
constraint fk_ordenes_despacho foreign key (id_orden)
              references ORDENES_DESPACHO(id_orden)

alter table MANTELES add
constraint pk_mateles primary key (id_mantel)


alter table LINEA_DESPACHO_MANTELES add
constraint fk_matel foreign key (id_mantel)
              references MANTELES(id_mantel),
constraint fk_ordenes_despacho_ foreign key (id_orden)
              references ORDENES_DESPACHO(id_orden)

alter table ALMACENES add
constraint pk_almacenes primary key (id_almacen)

alter table CLIENTES add
constraint pk_clientes primary key (id_cliente)

alter table TARIFA add
constraint pk_tarifas primary key (id_tarifa)


alter table VENTAS add
constraint pk_ventas primary key (id_venta),
constraint fk_pedido foreign key (id_pedido)
              references PEDIDOS(id_comanda),
constraint fk_contrato foreign key (id_contrato)
              references CONTRATOS(id_contrato),
constraint fk_cliente_ foreign key (id_cliente)
              references CLIENTES(id_cliente),
constraint fk_tarifa_ foreign key (id_tarifa)
              references TARIFA(id_tarifa)


alter table COMPOSICIONES add
constraint fk_productoi foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table CONTRATOS add
constraint pk_contratos primary key (id_contrato),
constraint fk_cliente foreign key (id_cliente)
              references CLIENTES(id_cliente),
constraint fk_tarifa foreign key (id_tarifa)
              references TARIFA(id_tarifa),
constraint fk_orden foreign key (id_tarifa)
              references ORDENES_DESPACHO(id_orden)

alter table PRODUCTOS add
constraint pk_productos_ primary key (id_producto),
constraint fk_comprobante_ foreign key (id_comprobante)
              references SUMINISTROS(id_comprobante),
constraint fk_almacen foreign key (id_almacen)
              references ALMACENES(id_almacen)


alter table LINEA_COTIZACION add
constraint fk_contrato__ foreign key (id_contrato)
              references CONTRATOS(id_contrato),
constraint fk_producto__ foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table LINEA_PEDIDO add
constraint fk_pedidos_ foreign key (id_comanda)
              references PEDIDOS(id_comanda),
constraint fk_producto_ foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table ACTIVIDADES add
constraint pk_actividades primary key (id_actividad),
constraint fk_producto foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table CATEGORIA_ITEM_PRODUCTO add
constraint fk_categoria foreign key (id_categoria)
              references CATEGORIAS(id_categoria),
constraint fk_productoo foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table EMPLEADOS_PRODUCTO add
constraint fk_empleado foreign key (id_empleado)
              references EMPLEADOS(id_empleado),
constraint fk_productooo foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table ALMACEN_PRODUCTO add
constraint fk_almacen_ foreign key (id_almacen)
              references ALMACENES(id_almacen),
constraint fk_productos foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table TRASPASOS add
constraint fk_almaceno foreign key (id_almacen)
              references ALMACENES(id_almacen),
constraint fk_almacend foreign key (id_almacen_destino)
              references ALMACENES(id_almacen),
constraint fk_productosx foreign key (id_producto)
              references PRODUCTOS(id_producto)

alter table PRODUCTOS_SUBAREAS add
constraint fk_area foreign key (id_area)
              references AREAS(id_area),
constraint fk_productosa foreign key (id_producto)
              references PRODUCTOS(id_producto)

viernes, 26 de agosto de 2011

[INF-272] INFORME: Copia Seguridad, Restaurar, Importar y Exportar

1.- Copia de seguridad de una base de datos SQL-SERVER

Paso1. Abrir el Explorador de objetos (Panel izquierdo) En ahí estarán las bases de datos que tenemos en nuestro servidor, Debemos expandir la rama de Bases de datos y selecciona la base de datos de la que quieres hacer la copia de seguridad, con el botón derecho de mouse, selecciona Tareas y luego escoge Copia de seguridad.

Paso2. Luego nos aparecerá un cuadro de diálogo. En caso de querer hacer la copia de seguridad en el directorio que SQL Server Express usar por defecto haremos clic en el botón Aceptar para hacer la copia, Pero si queremos elegir la ruta en la que se hará la copia, tendrás que pulsar en el botón Agregar y direccionar donde queremos guardarlo.

Paso3. Al pulsar en el botón Agregar, podremos elegir dónde se guardará la copia de seguridad donde deberos de ponerse el nombre con la extensión .bak

Paso4. Una vez escrito el nombre de la copia de seguridad, tendremos el valor que inicialmente nos mostró el Management Studio además del que nosotros hemos elegido, Ahora, como no necesitamos dos copias de seguridad, borraremos la que indicada en el disco C (el de Archivos de programa). Para borrarla, presionaremos en el botón Quitar. Si se deja los dos nombres, se hará una copia en cada una de las ubicaciones que se haya indicado.

Paso5.Presionamos aceptar, si se guarda el copia de seguridad con el mismo nombre se debo considerar anexar o sobrescribir copia de seguridad.

Paso6. Ahora solo presionamos el botón Aceptar y si todo fue bien nos mostrará un mensaje que nos indicará si la copia de seguridad se ha realizado correctamente

2.- Restaurar base de datos en SQL-SERVER Para restaurar una base de datos a partir de una copia de seguridad de vemos seguir los siguientes pasos. Paso1. En el Explorador de objetos, pulsa con el botón derecho del mouse sobre el elemento Bases de datos y seleccionar Restaurar base de datos.
Paso 2. Si vamos a restaurar una nueva base de datos, escribiremos el nombre correspondiente de la base de datos en la caja de texto “A una base de datos”.
Paso3. Para poder hacer la restauración debemos indicar dónde está la copia de seguridad. Para ello marcamos la opción Desde dispositivo y pulsar en el botón para seleccionar el archivos de copia de seguridad
Paso4. El destino puede ser cualquier carpeta, aunque lo recomendable es que sea la de datos de SQL Server, aunque ese directorio puede ser diferente, pero normalmente estará en la carpeta de instalación de SQL Server.Además de la ubicación del fichero _Data, tendrás que indicar el del fichero _Log. que estan en las opciones
Paso5. Una vez que has indicado la ubicación correcta, al pulsar en Aceptar, restaurará la base de datos y saldrá un mensaje indicando si se hizo la restauración de forma correcta.