Estos son los campos de la tabla de inventario y Detalle_facturas
Código SQL
[-]
CREATE TABLE INVENTARIO (
FECHA_ALTA DATE NOT NULL,
COD_BARRAS VARCHAR(30) CHARACTER SET NONE NOT NULL COLLATE NONE,
CODIGO2 VARCHAR(30) CHARACTER SET NONE COLLATE NONE,
CODIGO3 VARCHAR(30) CHARACTER SET NONE COLLATE NONE,
COD_FAMILIA VARCHAR(15) CHARACTER SET NONE COLLATE NONE,
COD_UBICACION INTEGER,
COD_UNIDAD INTEGER,
NOMBRE VARCHAR(200) CHARACTER SET NONE NOT NULL COLLATE NONE,
NOMBRE2 VARCHAR(100) CHARACTER SET NONE COLLATE NONE,
PRECIO_COMPRA FLOAT DEFAULT 0 NOT NULL,
FECHA_ULTIMACOMPRA DATE,
STOCK_MINIMO CANTIDAD_FLOAT NOT NULL,
PORC_IV NUMERIC(15, 3) DEFAULT 13 NOT NULL,
GRAVADO LOGICO NOT NULL,
IMPUESTO_INCLUIDO LOGICO NOT NULL,
IMAGEN BLOB,
PREVEN_1 FLOAT DEFAULT 0 NOT NULL,
BASECALCULO_1 INTEGER,
COEFA_1 NUMERIC(6, 2),
SUMAFIJA_1 FLOAT DEFAULT 0 NOT NULL,
REDONDEO_1 INTEGER,
PRECIOSINIV_1 FLOAT DEFAULT 0 NOT NULL,
PRECIOCONIV_1 FLOAT DEFAULT 0 NOT NULL,
STOCK CANTIDAD_FLOAT NOT NULL,
PRECIO_DEFECTO INTEGER DEFAULT 1,
FK_PROVEEDOR INTEGER,
CONSIGNACION CHAR(1) CHARACTER SET NONE DEFAULT 'N' NOT NULL COLLATE NONE,
PESONETO NUMERIC(18, 3),
PRESENTACION NUMERIC(10, 3),
VENTAALPESO LOGICO);
Esta es la Tabla DETALLE_FACTURAS
Código SQL
[-]
CREATE TABLE DETALLE_FACTURAS (
ID_DETALLE_FACTURA INTEGER NOT NULL,
FECHA DATE DEFAULT 'NOW',
CODIGO_FAMILIA VARCHAR(15) CHARACTER SET NONE DEFAULT '' COLLATE NONE,
CODIGO_ARTICULO VARCHAR(30) CHARACTER SET NONE NOT NULL COLLATE NONE,
DESCRIPCION ART_NOMBRE DEFAULT '' NOT NULL,
IMPORTE_UNITARIO NUMERIC(18, 2) DEFAULT 0,
CANTIDAD CANTIDAD_FLOAT DEFAULT 0 NOT NULL,
IMPORTE_IMPUESTO NUMERIC(18, 2) DEFAULT 0,
PORC_IMPUESTO NUMERIC(6, 2) DEFAULT 0,
GRAVADO CHAR(1) CHARACTER SET NONE DEFAULT 'N' NOT NULL COLLATE NONE,
IMPUESTO_INCLUIDO CHAR(1) CHARACTER SET NONE DEFAULT 'N' NOT NULL COLLATE NONE,
TIENE_SERIES CHAR(1) CHARACTER SET NONE DEFAULT 'N' NOT NULL COLLATE NONE,
COMPROBANTE VARCHAR(12) CHARACTER SET NONE NOT NULL COLLATE NONE,
IMPORTE_COSTO NUMERIC(18, 2) DEFAULT 0,
IMPORTE_TOTAL NUMERIC(18, 2) DEFAULT 0,
IMPORTE_DESCUENTO NUMERIC(18, 2) DEFAULT 0,
PORC_DESCUENTO NUMERIC(6, 2) DEFAULT 0,
FRACCIONADO CHAR(1) CHARACTER SET NONE DEFAULT 'N' NOT NULL COLLATE NONE,
ID_FRACCION INTEGER DEFAULT 0,
FRACCION CANTIDAD_FLOAT DEFAULT 0 NOT NULL,
COMPUESTO CHAR(1) CHARACTER SET NONE DEFAULT 'N' COLLATE NONE,
ANULADA CHAR(1) CHARACTER SET NONE DEFAULT 'N' NOT NULL COLLATE NONE,
FK_PROVEEDOR INTEGER,
Ahora tengo esta consulta para traer los siguientes datos de la tabla de Inventario:
Código SQL
[-]
SELECT DISTINCT NOMBRE2, CODIGO3 FROM INVENTARIO WHERE NOMBRE2 IS NOT NULL AND CODIGO3 IS NOT NULL
order by nombre2
y esta es la consulta que realizo en la tabla de DETALLE_FACTURAS:
Código SQL
[-]
select DETALLE_FACTURAS.CODIGO_ARTICULO,
DETALLE_FACTURAS.DESCRIPCION,
DETALLE_FACTURAS.CANTIDAD,
DETALLE_FACTURAS.IMPORTE_UNITARIO,
detalle_facturas.IMPORTE_TOTAL,
detalle_facturas.IMPORTE_DESCUENTO,
(detalle_facturas.IMPORTE_TOTAL-detalle_facturas.IMPORTE_DESCUENTO) TOTAL_VENTA
from DETALLE_FACTURAS where detalle_facturas.CODIGO_ARTICULO = Codigo AND DETALLE_FACTURAS.FECHA between :FechaInicio and :FechaFin
GROUP BY DETALLE_FACTURAS.CODIGO_ARTICULO,
DETALLE_FACTURAS.DESCRIPCION,
DETALLE_FACTURAS.CANTIDAD,
DETALLE_FACTURAS.IMPORTE_UNITARIO,
detalle_facturas.IMPORTE_TOTAL,
detalle_facturas.IMPORTE_DESCUENTO,
TOTAL_VENTA
Ahora necesito es consultar por el CODIGO3 ya que este código se repite en varios productos o sea el codigo3 puede estar 50 articulos vendidos y hacer su respectiva sumas de totales..
ah... la BD esta en el mismo servidor... y es firebird 2.5...
creo que me explique mejor...
Saludos