SQL - Base de datos compra inteligente

 
Vista:

Base de datos compra inteligente

Publicado por Luis Cuevas (1 intervención) el 13/01/2011 02:50:31
Que tal compañeros, mi inquietud es realizar una base de datos que me sirva como sistema de compra inteligente para mi negocio. Les explico detalladamente, manejo 4 proveedores uno de ellos tiene un catalogo de 14000 productos, el segundo maneja 12000, el tercero 8000 y el ultimo 7000 de estos hay muchos en comun pero hay diferencias entre ellos en cuanto productos, o sea que lo primero que ocupo es hacer una base de datos general que contenga todos los productos de los cuatro sin repetir ninguno. Hasta ahorita he creado una base de datos que contiene en tablas los catalogos de mis proveedores y me imagino que tengo que crear una vista que contenga la base que reuna todo los campos que tiene cada tabla son los siguientes:
CodigoEan= codigo de barras,
codigo= codigo interno del proveedor
descripcion= descripcion del producto
Laboratorio= fabricante del producto
iva= taza de impuesto
costo= precio costo sin impuesto
pub= precio publico sugerido sin impuesto

lo que podria unir a todas las tablas es el codigo ean, ya que es el mismo pues las descripciones varian, entonces he podido crear una consulta en donde me despliegan solo los codigos de barras para crear una sola base de datos general sin que aparezcan duplicados

select distinct codigoean from tb_saba
union
select distinct codigoean from tb_nadro
union
select distinct codigoean from tb_marzam
union
select distinct codigoean from tb_farmacos

pero como dije solo me aparece el codigo de barras y necesito que aparezcan los demas campos.

Ademas esta solo es la primer parte pues necesitaria orientacion para ir desarrollando lo demas, pero mi primera duda es esta, gracias de antemano y haber si alguien puede auxiliarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Base de datos compra inteligente

Publicado por Ariel Bálsamo (9 intervenciones) el 13/01/2011 14:59:43
Hola Luis. Mi primera sugerencia es que no necesitas una tabla para cada catálogo. Lo que puedes hacer es crea una nueva tabla con el mismo formato y agregar un campo para el código de proveedor. Además necesitaría armar una tabla para los proveedores (con el código de proveedor, nombre, dirección ,etc). No entiendo por qué tienes duplicados, supestamente el EAN debe ser único así el producto sea el mismo pero de dos fabricantes distintos.

De cualquier manera, atendiendo tu consulta, por lo que veo quieres todos los códigos EAN diferentes de cada tabla y además los demás datos. Bien, esto no es sencillo, porque como dices el EAN es el mismo, pero los demás datos no, por lo que el motor no sabe con qué filas quedarse para mostrar los demás campos. Por ejemplo:

EAN CAMPO1
111 A
111 B

En tu consulta da igual si el motor selecciona el EAN de la primera fila o la segunda. Pero sobre CAMPO1 no es lo mismo, pues obtendrías A o B. ¿Cuál debe seleccionar? Existen funciones que te retornan el mayor valor, el menor, el promedio, la suma, etc.

Para generar la nueva tabla puedes hacer:

INSERT INTO CATALOGO (CodigoEan, Cod_Prov, Codigo, Descripcion, Laboratorio, Iva, costo, pub)
SELECT CodigoEan, 1, Codigo, Descripcion, Laboratorio, Iva, costo, pub
FROM tb_saba;

Repites el insert reemplazando la tabla correspondiente y cambiando el Cod_Prov.

Espero que te sirva.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar