PDA

Ver la Versión Completa : Urgente Ayuda, por fa,


emartinez
27-06-2005, 23:01:47
:confused: Urgente Ayuda, por fa, Este es mi query


Select c.cvedeleg, c.nomdeleg, d.programa
from cdelegacion c , programap d
where d.anio = 2001 and d.cvedeleg <= 33 and d.cveespecie = 6 and d.cveproducto = 6 and c.cvedeleg = d.cvedeleg ;


el detalle esta cuando cambia el campo cveespecie.


el resultado es un listado de delegaciones y su cantidad, pero cuando cambia el tipo de especie solo me muestra ciertas delegaciones y necesito que muestre todas aunque sin datos, ej.....

si la especie es = 4 el resultado es:

Aguascalieste
Baja California Sur
Baja California Norte
Campeche
Coahuila
.
.
.
.
.
.
.
Zacatecas


y si el tipo de especie es = 6 el resultado es

Bajacalifornia Norte
Coahuila
.
.
.
.
.
.
.
.
.
.
Yucatan


y necesito que aparescan todos los estados tenga o no la especie desde Aguascalientes hasta Zacatecas

Puede ser que sea facial pero estoy iniciando en delphi me podrian ayudar
necesito entregar el reporte ya.....

gracias :confused:

ContraVeneno
27-06-2005, 23:33:41
Pues no se si sea facial o no :D , pero podrías probar hacer lo siguiente...

Select c.cvedeleg, c.nomdeleg, d.programa
from cdelegacion c , programap d
where d.anio = 2001 and d.cvedeleg <= 33 and d.cveespecie = 6 and d.cveproducto = 6 and c.cvedeleg *= d.cvedeleg

solo modifique c.cvedeleg *= d.cvedeleg

¿en que campo tienes guardado el nombre de los estados?

Por otra parte, consulta la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) del foro
y tambien sería bueno que utilizas las Etiquetas como la [sql] que utilize, si deseas aquí hay más información sobre las etiquetas (http://www.clubdelphi.com/foros/misc.php?do=bbcode)que puedes usar

Alexander
28-06-2005, 21:33:27
Creo si no estoy equivocado sería mejor utilizar un INNER JOIN O UN LEFT JOIN según te conventa.

Espero te sirva de algo.

jachguate
29-06-2005, 00:38:05
Lo que te hace falta es un outer join. Dado que no indicas cual es el motor, te sugiero que intentes usar la sintaxis del estándar, a ver si es soportada. Tu consulta querdaría algo parecido a:


Select c.cvedeleg, c.nomdeleg, d.programa
from cdelegacion c left outer join programap d on c.cvedeleg = d.cvedeleg
where d.cvedeleg is null
or (d.anio = 2001
and d.cvedeleg <= 33
and d.cveespecie = 6
and d.cveproducto = 6);


Hasta luego.

;)