Tengo problemas con esta consulta

02/04/2008 - 18:32 por Martin | Informe spam
Hola que tal, yo nuevamente, estoy haciendo una consulta para llenar una
grilla, y me dieron la base de datos con estas tablas para cargar la grilla,
pero algo me esta fallando con la sentencia SQL que me muestra los datos pero
por demas replicados. bueno les paso las tablas y mi codigo y lo que tiene
que visualizar si me pueden ayudar claro:

personal(codigo, codofi)
oficina(codigo, nombre)
expediente(codigo, exp, origen,tipexp,asunto)
detalle(codexp, coddes, coddoc,dfecha,observacion)
documento(codigo)

Lo que necesito cargar en la grilla es el tipo de expediente (tipexp),
Expediente(exp), oficina de procedencia(nombre Oficina), asunto, fecha de
despacho, observacion, pero de acuerdo a la oficina en la que me
encuentro(coddes), y la el codigo de la persona que usa el sistema supongamos
Juan Perez (315), esta es la sentencia que uso:

SELECT e.tipexp As Tipo, e.exp As Expediente, oo.nombre As Procedencia,
e.asunto As Asunto, d.dfecha As Fecha, d.obs As Observacion
FROM expediente e, oficina oo, oficina od, detalle d, personal po, personal
pd, documento doc
WHERE e.exp=d.codexp AND oo.codigo=e.origen AND od.codigo=d.coddes AND
doc.codigo=d.coddoc
AND po.codofi=e.origen AND po.codofi=oo.codigo AND pd.codofi=d.coddes AND
pd.codofi=od.codigo
AND pd.codigo15

siendo oo=oficina de origen, od=oficina de destino, po=personal de origen,
pd=personal de destino.

Bueno espero que me puedan dar una mano, porque mi cabeza ya se me hizo un
nudo, por no decir que ya se me esta bloqueando el cerebro :S...
 

Leer las respuestas

#1 Maxi Accotto
03/04/2008 - 02:11 | Informe spam
Martin, varios detalles.

Yo no conozco como estan tus datos ni mucho menos , al tener registros
duplicados puede ser o bien porque existan duplicados en la base o porque
los join de tablas estan incorrectos y te falta unir algun campo.

Entonces, primero lo que yo haria en tu caso es ir poniendo las tablas de a
una y ver en que momento se genera la duplicacion de datos, ahi analizar
bien como estas haciendo la union de tablas y los registros.

Otro detalle, porque no usas ANSI para hacer los joins en lugar de where
tabla= tabla


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Martin" escribió en el mensaje de
noticias:
Hola que tal, yo nuevamente, estoy haciendo una consulta para llenar una
grilla, y me dieron la base de datos con estas tablas para cargar la
grilla,
pero algo me esta fallando con la sentencia SQL que me muestra los datos
pero
por demas replicados. bueno les paso las tablas y mi codigo y lo que tiene
que visualizar si me pueden ayudar claro:

personal(codigo, codofi)
oficina(codigo, nombre)
expediente(codigo, exp, origen,tipexp,asunto)
detalle(codexp, coddes, coddoc,dfecha,observacion)
documento(codigo)

Lo que necesito cargar en la grilla es el tipo de expediente (tipexp),
Expediente(exp), oficina de procedencia(nombre Oficina), asunto, fecha de
despacho, observacion, pero de acuerdo a la oficina en la que me
encuentro(coddes), y la el codigo de la persona que usa el sistema
supongamos
Juan Perez (315), esta es la sentencia que uso:

SELECT e.tipexp As Tipo, e.exp As Expediente, oo.nombre As Procedencia,
e.asunto As Asunto, d.dfecha As Fecha, d.obs As Observacion
FROM expediente e, oficina oo, oficina od, detalle d, personal po,
personal
pd, documento doc
WHERE e.exp=d.codexp AND oo.codigo=e.origen AND od.codigo=d.coddes AND
doc.codigo=d.coddoc
AND po.codofi=e.origen AND po.codofi=oo.codigo AND pd.codofi=d.coddes AND
pd.codofi=od.codigo
AND pd.codigo15

siendo oo=oficina de origen, od=oficina de destino, po=personal de origen,
pd=personal de destino.

Bueno espero que me puedan dar una mano, porque mi cabeza ya se me hizo un
nudo, por no decir que ya se me esta bloqueando el cerebro :S...

Preguntas similares