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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 J Lara
06/06/2005 - 23:24 | Informe spam
Alejandro, ya hice pruebas como me indicas pero ahora
me envia errores en el inner join como que me falta
enlasar o unir las tres tablas, el select que tengo
despues del update si lo ejecuto por separado si me envia
el resultado del count correcto lo malo es que me lo
replica a todos los productos.

Gracias por tu ayuda.

Saludos.




"Alejandro Mesa" escribió:

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.
Respuesta Responder a este mensaje
#3 Alejandro Mesa
07/06/2005 - 14:39 | Informe spam
j Lara,

Puedes postear la definicion de las tablas involucradas asi como un ejemplo
de la data y los resultados esperados?


AMB

"J Lara" wrote:

Alejandro, ya hice pruebas como me indicas pero ahora
me envia errores en el inner join como que me falta
enlasar o unir las tres tablas, el select que tengo
despues del update si lo ejecuto por separado si me envia
el resultado del count correcto lo malo es que me lo
replica a todos los productos.

Gracias por tu ayuda.

Saludos.




"Alejandro Mesa" escribió:

> 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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida