PDA

Ver la Versión Completa : Consulta Sql


marcelofabiani
26-11-2003, 02:21:56
Buenas amigos colisteros tengo la siguiente consulta:

Estoy desarrollado un programa que controle el pago de comisiones a vendedores de unos productos los cuales ganan las comisiones de acuerdo a las personas que tengan bajo su cargo es decir tipo piramide

Ej:

Director
Lider Lider
Supervisor
Vendedor 1 V.2 V.3 ......etc hasta 10

tengo tres tablas que utilizo para sacar las comisiones

usuario(U1): (idusuario,nombres,apellidos,...etc)
usuariorecomendado(R1):(idusuario,idusuariorecoemndado,fecha)
pedido(p1):(idpedido,monto,fecha,idusuario,...etc)

Para sacar las comisiones hice la siguiente consulta:

' SELECT usuariorecomendado.idusuario,pedido.idusuario,(count(pedido.idpedido)*1.5)as num FROM pedido,usuariorecomendado WHERE (pedido.idusuario=usuariorecomendado.idusuariorecomendado) and (usuariorecomendado.idusuario=:param) GROUP BY pedido.idusuario'

COMISION=suma de (# de pedidos por vendedor*1.5)

Con param saco la comision, del que quiero ahora mi problema es que este me saca solo de los que estan abajo es decir si busco de un supervisor me dara todos los que esten abajo de el pero las comisiones las tengo que sacar de los que estan mas abajo aun

sup
v1 v2 v3 v4 <---Hasta aqui me saca la comision con
v5 v6 esa consulta

Como deberia hacer el procedimiento para que despues de ver las comisiones del primer nivel vaya bajando a los otros en este caso incluir v5 y v6.

Espero alguien me pueda dar una pista. Un saludo a todos

fjcg02
12-12-2003, 10:00:04
Estoy usando una BBDD que contiene una estructura parecida, con una tabla de elementos y otra de relaciones entre ellos padre-hijo, sin restricciones.
Pregunté en otro foro - de SQL SERVER concretamente - y me respondieron que la única manera de hacer esto es a manija. Nosotros lo hacemos con un procedimiento almacenado que crea una tabla temporal y va construyendo la jerarquía.
En oracle hay una sentencia CONNECT BY que te lo hace todo automáticamente, devolviendote todo el árbol construido e indicando el nivel que ocupa cada elemento, pero en el resto de RGDB's no conozco nada parecido.

Espero que te sirva de ayuda.

Un saludo