Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Hadess_inf

#21
Tu consulta esta toda desordenada, ahí esta tu error, el group by esta antes del from ... etc ...

Saludos.
#22
Bases de Datos / Re: Base de Datos de Loteria
8 Marzo 2017, 19:49 PM
> Excel estaría bien.
> Access con algún lenguaje sera bueno.
> Algún gestor de base de datos + lenguaje de programación seria genial.

Saludos.

PD: Todos es posible hacerlo.
#23
Porque no hace un left join y agregas un max ¿?

Código (sql) [Seleccionar]
SELECT  T1.*, TMP.fecha
FROM T1 LEFT OUTER JOIN (SELECT T2.id_t1, MAX(T2.fecha) AS fecha FROM T2 GROUP BY id_t1) TMP ON ( T1.id = TMP.id_t1 )
WHERE T1.... /* condiciones */
#24
Hola, que tal ... alguien tendrá una base de datos que tenga ventas como para que comparta conmigo.

Requiero algunos datos para hacer unas pruebas.

Gracias.
#25
Hola, pues bien .. la idea es esta:

- tb_articulo ( id INT PK)
- tb_almacen (id INT PK)
- tb_stock (id INT PK, idarticulo INT FK, idalmacen INT FK, cantidad INT)

Y este es el Trigger:

Código (sql) [Seleccionar]
CREATE OR REPLACE FUNCTION tr_stock_articulo_almacen()
  RETURNS trigger AS
$BODY$
DECLARE i_existe integer;
i_tipo integer;
BEGIN
-- Calcula valores
i_tipo   := (CASE WHEN TG_TABLE_NAME = 'tb_venta_detalle' THEN -1 ELSE 1 END);
i_existe := (SELECT COUNT(id) FROM tb_stock WHERE idalmacen = NEW.idalmacen AND idarticulo = NEW.idarticulo);

-- Inserta almacen y producto en tabla stock
IF i_existe = 0 THEN
INSERT INTO tb_stock (idalmacen, idarticulo, cantidad) VALUES (NEW.idalmacen, NEW.idarticulo, 0);
END IF;

-- Opera trigger
IF TG_OP = 'INSERT' THEN
UPDATE tb_stock SET cantidad = cantidad + (NEW.cantidad * i_tipo) WHERE idalmacen = NEW.idalmacen AND idarticulo = NEW.idarticulo;

ELSEIF TG_OP = 'UPDATE' THEN
UPDATE tb_stock SET cantidad = cantidad - (OLD.cantidad * i_tipo) WHERE idalmacen = OLD.idalmacen AND idarticulo = OLD.idarticulo;
UPDATE tb_stock SET cantidad = cantidad + (NEW.cantidad * i_tipo) WHERE idalmacen = NEW.idalmacen AND idarticulo = NEW.idarticulo;

ELSEIF TG_OP = 'DELETE' THEN
UPDATE tb_stock SET cantidad = cantidad - (OLD.cantidad * OLD.tipo) WHERE idalmacen = OLD.idalmacen AND idarticulo = OLD.idarticulo;
END IF;

RETURN NULL;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE;


Asi asignas el trigger a la tabla:

Código (sql) [Seleccionar]
-- Para la tabla de detalle de compra
CREATE TRIGGER tb_compra_detalle_trigger
  AFTER INSERT OR UPDATE OR DELETE
  ON tb_compra_detalle
  FOR EACH ROW
  EXECUTE PROCEDURE tr_stock_articulo_almacen();

-- Para la tabla de detalle de venta
CREATE TRIGGER tb_venta_detalle_trigger
  AFTER INSERT OR UPDATE OR DELETE
  ON tb_venta_detalle
  FOR EACH ROW
  EXECUTE PROCEDURE tr_stock_articulo_almacen();


Saludos.

::) ::)
#26
Bases de Datos / Re: Modelaje ER Cronograma
4 Abril 2016, 16:28 PM
Pon una imagen de tu modelo actual, para partir de el.

Saludos.
#27
Hola alguien ha llevado algun curso de base de datos online con certificacion.

¿ Sugerencias para llevar alguno ?
Gracias y saludos.
#28
Hola colegas, alguien conoce algun hosting Free con mysql y que tenga para activar mod_rewrite.
Necesito hacer algunas pruebas (por lo general uso hostoi pero este no tiene para activar las url amigables).

Gracias y saludos.
#29
Foro Libre / Nombre de fuente
6 Enero 2016, 15:02 PM
Alguien conoce el nombre de la fuente y/o una que se asemeje al texto de la siguiente imagen



Gracias y saludos.
#30
¿Realizas tu insercion dentro de un bloque de transacciòn?

Begin
...
commit;