malditaaa consulta! se podra?

10/02/2005 - 01:40 por Jerry Valdez | Informe spam
Bueno despues de andar navegando de foro en foro me
mandaron a este y pues espero humildemente su ayuda
muchachos no quiero perder mas pelo!! :)

He aqui el problema:
Estamos desarrollando un sistema en linea para el manejo
de documentos entre oficinas y departamentos de la
empresa en que trabajamos y tenemos un gran problemon
para poder definir la entrega de los documentos a los
usuarios..para que se me entienda mejor aqui esta
la estrucutra ahorita de la
tabla oficio_detalle donde se crea un registro por cada
uno de los usuarios que selecciono en una ruta de
documento-

oficio usuario permiso orden estado fecha estatus_doc
1 20 1 1 1 2005-02-21 0

2 11 1 1 1 2005-02-10 1
2 20 0 2 1 2005-02-11 0
2 21 0 3 1 2005-02-11 0

3 21 1 1 1 2005-02-10 0
3 11 0 1 1 2005-02-10 0

4 20 0 1 1 2005-02-10 0

5 20 1 1 0 2005-02-15 0
5 11 0 2 0 2005-02-15 0

6 23 0 1 0 2005-02-15 0

lo que quiero es que al "loguearse" el usuario vea sus
documentos tanto revisados como los que le faltan por
revisar (eso lo determino en estatus_doc 1 para revisado
y 0 para falta revision, y en permiso un 0 para los que
son de entrega normal y un 1 para los que son entregados
para su revision y despues de ser aprobados entregados al
destinatario inmediato en el orden) pero para que un
usuario, que tenga el orden 2 (o X sig) en la "ruta del
documento" a revisar, pueda "verlo" en su bandeja es
necesario que el usuario con el orden inmediato anterior
lo haya revisado (estatus_doc=1) pero puede darse el caso
que el documento se envie a diferentes usuarios y con un
mismo orden definido (ejemplo un memorandum que va para
aqui y alla y todos tienen orden 1)
un ejemplo se loguea el usuario 11 y deberia de ver en su
bandeja los siguientes registros
el oficio 1(porque es el unico)
el oficio 2(ya lo reviso)
el oficio 3(porque es para 2 usuarios pero ambos tienen
el orden 1)

y no deberia de ver:
el oficio 4 (porque no le corresponde verlo)
el oficio 5 (no ha sido revisado por el primer usuario
en el orden)
el oficio 6 (porque no le corresponde verlo)

he logrado obtener muchos resultados pero nunca el que
necesito, ahorita recupero los registros en los
cuales "X" usuario es el primero en el orden siempre y
cuando no haya
revisado (estatus_doc=0) a base de esta consulta:
SELECT * FROM oficios_detalle WHERE id_usuario ="usuario"
AND estatus_doc =0 GROUP BY id_oficio ASC

pero no es lo que necesito.
alguien podria ayudarme?
me faltan campos o que?
ojala y puedan hacerlo muchachos gracias!
 

Leer las respuestas

#1 MAXI
10/02/2005 - 02:20 | Informe spam
Hola, el 1 lo debe ver porque es el unico por mas que no este apuntado a ese
usuario?



Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:
"Jerry Valdez" escribió en el mensaje
news:0af301c50f09$286cabe0$
Bueno despues de andar navegando de foro en foro me
mandaron a este y pues espero humildemente su ayuda
muchachos no quiero perder mas pelo!! :)

He aqui el problema:
Estamos desarrollando un sistema en linea para el manejo
de documentos entre oficinas y departamentos de la
empresa en que trabajamos y tenemos un gran problemon
para poder definir la entrega de los documentos a los
usuarios..para que se me entienda mejor aqui esta
la estrucutra ahorita de la
tabla oficio_detalle donde se crea un registro por cada
uno de los usuarios que selecciono en una ruta de
documento-

oficio usuario permiso orden estado fecha estatus_doc
1 20 1 1 1 2005-02-21 0

2 11 1 1 1 2005-02-10 1
2 20 0 2 1 2005-02-11 0
2 21 0 3 1 2005-02-11 0

3 21 1 1 1 2005-02-10 0
3 11 0 1 1 2005-02-10 0

4 20 0 1 1 2005-02-10 0

5 20 1 1 0 2005-02-15 0
5 11 0 2 0 2005-02-15 0

6 23 0 1 0 2005-02-15 0

lo que quiero es que al "loguearse" el usuario vea sus
documentos tanto revisados como los que le faltan por
revisar (eso lo determino en estatus_doc 1 para revisado
y 0 para falta revision, y en permiso un 0 para los que
son de entrega normal y un 1 para los que son entregados
para su revision y despues de ser aprobados entregados al
destinatario inmediato en el orden) pero para que un
usuario, que tenga el orden 2 (o X sig) en la "ruta del
documento" a revisar, pueda "verlo" en su bandeja es
necesario que el usuario con el orden inmediato anterior
lo haya revisado (estatus_doc=1) pero puede darse el caso
que el documento se envie a diferentes usuarios y con un
mismo orden definido (ejemplo un memorandum que va para
aqui y alla y todos tienen orden 1)
un ejemplo se loguea el usuario 11 y deberia de ver en su
bandeja los siguientes registros
el oficio 1(porque es el unico)
el oficio 2(ya lo reviso)
el oficio 3(porque es para 2 usuarios pero ambos tienen
el orden 1)

y no deberia de ver:
el oficio 4 (porque no le corresponde verlo)
el oficio 5 (no ha sido revisado por el primer usuario
en el orden)
el oficio 6 (porque no le corresponde verlo)

he logrado obtener muchos resultados pero nunca el que
necesito, ahorita recupero los registros en los
cuales "X" usuario es el primero en el orden siempre y
cuando no haya
revisado (estatus_doc=0) a base de esta consulta:
SELECT * FROM oficios_detalle WHERE id_usuario ="usuario"
AND estatus_doc =0 GROUP BY id_oficio ASC

pero no es lo que necesito.
alguien podria ayudarme?
me faltan campos o que?
ojala y puedan hacerlo muchachos gracias!


Preguntas similares