FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ayuda con instrucion sql (SOLVED)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
ayuda con instrucion sql (SOLVED)
Posted: Sat Sep 24, 2011 07:46 PM
estimados, apelo a su sabiduria :-) ya que estoy teniendo problemas para armar una sentencia select en sql.
la idea es simple:
1.-una tabla con los feriados o dias festivos, los hay del tipo nacional o del tipo local (por ciudad).
en caso de ser nacional, no se pon un valor en num_ciud, solamnte que sea local se da valor a num_ciud
indicando con el numero que ciudad afecta

+-fecha --------+-motivo-------------------+-nacional-+-num_ciud---+
| 01/01/2011 | inicio de año | True | 0 |
+-----------------+----------------------------+------------+----------------+
| 25/12/2011 | nacimiento de cristo | True | 0 |
+-----------------+----------------------------+------------+----------------+
| 10/08/2011 | santo domingo guzman| False | 10 |
+-----------------+----------------------------+------------+----------------+

2.-una tabla con las ciudades.

+-num_ciud----+-nombre------------------+
| 1 | carazo |
+-----------------+-----------------------------+
| 10 | managua |
+-----------------+-----------------------------+

3.- trato de traerme los una lista con los feriados nacionales y los feriados locales con la ciudad que afectan
Code (fw): Select all Collapse
select a.fecha, a.motivo, a.nacional, b.nombre as ciudad 
from feriados as a, ciudades as b 
where a.num_ciud = b.num_ciud


pero no se trae nada, ya que en el caso de que sea un feriado nacional no hay un valor en num_ciud
he intentado esta variable
Code (fw): Select all Collapse
select a.fecha, a.motivo, a.nacional, b.nombre as ciudad 
from feriados as a, ciudades as b 
where a.num_ciud = b.num_ciud  or empty( a.num_ciud)


se trae los datos, pero asignando una ciudad al azar a los feriados nacionales, cuando deberia entregr una cadena vacia.

OTRO INTENTO
Code (fw): Select all Collapse
select a.fecha, 
       a.motivo, 
       a.nacional, 
       iif( empty( a.num_ciud ) ,'', b.nombre ) as ciudad   
from feriados as a, ciudades as b 
where a.num_ciud = b.num_ciud

please agradesco cualquier ayuda con esto.
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con instrucion sql
Posted: Sat Sep 24, 2011 08:26 PM
solucionado con
Code (fw): Select all Collapse
SELECT A.FECHA, A.MOTIVO, A.NACIONAL, B.NOMBRE AS CIUDAD  FROM FERIADOS AS A LEFT OUTER JOIN CIUDADES AS B ON A.NUM_CIUD = B.NUM_CIUD
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: ayuda con instrucion sql (SOLVED)
Posted: Sun Sep 25, 2011 02:01 AM

Carlos,

Asi lo hago yo,

           cConsulta := "SELECT COUNT(*), tipohabitacion.nombre, tipohabitacion.id" + ;
                        " FROM llegadas" + ;
                        " LEFT OUTER JOIN habitaciones ON llegadas.idhabitacion = habitaciones.id" + ;
                        " LEFT OUTER JOIN tipohabitacion ON habitaciones.idtipohab = tipohabitacion.id" + ;
                        " WHERE fechallegada <= " + DTOS(dFec3) + ;
                        " AND fechasalida > " + DTOS(dFec3) + ;
                        " AND tipohabitacion.id = " + STR(oTipoH:IdTipo) + ;
                        " GROUP BY tipohabitacion.id"
           oQry2 := oApp:oServer:Query(cConsulta)

salu2
paco

____________________

Paco
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con instrucion sql (SOLVED)
Posted: Sun Sep 25, 2011 06:51 PM

gracias francisco.

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)

Continue the discussion