Insertar counts de otra tabla

06/06/2005 - 18:15 por J Lara | Informe spam
Tengo una consulta que involucra 3 tablas, pero utilizo
la tabla 1 que actualizo de la tabla 2 y la tabla 3 solo
me sirve para filtrar (not in) un registro que no deseo
se actualize a la tabla1.

Tabla 1: contiene las areas de servicio que manejamos por
ejemplo limpieza, farmacia y Ferreteria cada una con sus
respectivos codigos de productos que se manejan.

Tabla 2: van todos los codigos de productos de las areas
de la tabla1

La idea es insertar el total de productos vendidos (count)
a su respectiva area, pero en cada area tengo un codigo
respectivo tipo generico que ese NO deseo agregarlo en el
count

Tabla 3: el nombre de todos los productos de la tabla 2
esta tabla la utilizo solo para filtrar el nombre del codigo
generico que no deseo.

la consulta es algo asi:

update tabla1 set tabla1.campo1(
SELECT Count(tabla2.Campo2)
FROM Tabla3 Tabla3, Tabla2 Tabla2
WHERE Tabla3.Campo3(ID) = Tabla2.Campo3(ID)
AND ((Tabla2.Campo2="prods ferreteria" )
AND (Tabla3.Campo4(generico) Not Like 'Generico%')))

)
where Tabla1.Campox(Venta)>0


En este ejemplo estoy actualizando el total de productos
vendidos del area de ferreteria pero tratando de dejar
el producto generico (codigo que utilizan cuando no
esta dado de alta algun producto)y el where final es
que la venta sea mayor que $0.

El gran problema que tengo es que si el total a actualizar
por el area de ferreteria fuera 50 esta cifra la agrega
a todas las areas y no nada mas a la que le corresponde.

osea ferreteriaP, farmaciaP y limpiezP

Alguien me podria ayudar al respecto ??

Mil gracias por su apoyo.

Saludos.
 

Leer las respuestas

#1 Alejandro Mesa
06/06/2005 - 18:30 | Informe spam
Trata,

update tabla1 set tabla1.campo1(
SELECT
Count(tabla2.Campo2)
FROM
Tabla3 Tabla3
inner join
Tabla2
on Tabla3.Campo3(ID) = Tabla2.Campo3(ID)
WHERE
AND ((Tabla2.Campo2="prods ferreteria" )
AND (Tabla3.Campo4(generico) Not Like 'Generico%')))
and tabla2.area_de_servicio = tabla1.area_de_servicio
)
where
tabla1.area_de_servicio = 'ferreteria'
and Tabla1.Campox(Venta)>0


AMB

"J Lara" wrote:

Tengo una consulta que involucra 3 tablas, pero utilizo
la tabla 1 que actualizo de la tabla 2 y la tabla 3 solo
me sirve para filtrar (not in) un registro que no deseo
se actualize a la tabla1.

Tabla 1: contiene las areas de servicio que manejamos por
ejemplo limpieza, farmacia y Ferreteria cada una con sus
respectivos codigos de productos que se manejan.

Tabla 2: van todos los codigos de productos de las areas
de la tabla1

La idea es insertar el total de productos vendidos (count)
a su respectiva area, pero en cada area tengo un codigo
respectivo tipo generico que ese NO deseo agregarlo en el
count

Tabla 3: el nombre de todos los productos de la tabla 2
esta tabla la utilizo solo para filtrar el nombre del codigo
generico que no deseo.

la consulta es algo asi:

update tabla1 set tabla1.campo1> (
SELECT Count(tabla2.Campo2)
FROM Tabla3 Tabla3, Tabla2 Tabla2
WHERE Tabla3.Campo3(ID) = Tabla2.Campo3(ID)
AND ((Tabla2.Campo2="prods ferreteria" )
AND (Tabla3.Campo4(generico) Not Like 'Generico%')))

)
where Tabla1.Campox(Venta)>0


En este ejemplo estoy actualizando el total de productos
vendidos del area de ferreteria pero tratando de dejar
el producto generico (codigo que utilizan cuando no
esta dado de alta algun producto)y el where final es
que la venta sea mayor que $0.

El gran problema que tengo es que si el total a actualizar
por el area de ferreteria fuera 50 esta cifra la agrega
a todas las areas y no nada mas a la que le corresponde.

osea ferreteriaP, farmaciaP y limpiezP

Alguien me podria ayudar al respecto ??

Mil gracias por su apoyo.

Saludos.

Preguntas similares