Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

favor revisen este select

Estas en el tema de favor revisen este select en el foro de Mysql en Foros del Web. me genera un error este select tal cual como esta puedo aplicarlo en codigo php? que modificaciones debo hacerle? Código: select nmro_dcmnto as Factura, cdgo_clnte ...
  #1 (permalink)  
Antiguo 10/06/2009, 14:14
Avatar de mss_lobaton85  
Fecha de Ingreso: abril-2009
Ubicación: Buenaventura
Mensajes: 41
Antigüedad: 15 años
Puntos: 0
favor revisen este select

me genera un error este select tal cual como esta puedo aplicarlo en codigo php?

que modificaciones debo hacerle?



Código:
select  nmro_dcmnto as Factura, cdgo_clnte as Cliente, cdgo_prdo as Periodo,
        fcha_dcmnto as fecha_fac, fcha_vncmnto as Vencimiento, fcha_ultmo_pgo
        as Pago, vlor_incial as Valor, sldo as saldo,
        (fcha_vncmnto - fcha_ultmo_pgo) as Dif
from    mstro_crtra
where   cdgo_tpo_d="FAC"
and     cdgo_prdo between 200801 and 200812
and     cdgo_clnte = 30397
into    temp t1
select  count(*) as menor
from    t1
where   saldo = 0
and     Dif < 0
union
select  count(*) as mayor
from    t1
where   saldo = 0
and     (Dif = 0 or Dif > 0 )
  #2 (permalink)  
Antiguo 10/06/2009, 14:30
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: favor revisen este select

No puedes llamar un alias en el where.

1. Cuando dices dif < 0, es un error de sintaxis.
2. Para hacer uso de union, es necesario que concuerden el numero de campos entre las tablas relacionadas. Para tu caso, tienes un unico campo en la segunda consulta y 9 en la primera.
3. into temp1? No se que tratas de hacer con eso.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 10/06/2009, 14:37
Avatar de mss_lobaton85  
Fecha de Ingreso: abril-2009
Ubicación: Buenaventura
Mensajes: 41
Antigüedad: 15 años
Puntos: 0
Respuesta: favor revisen este select

Cita:
Iniciado por huesos52 Ver Mensaje
No puedes llamar un alias en el where.

1. Cuando dices dif < 0, es un error de sintaxis.
2. Para hacer uso de union, es necesario que concuerden el numero de campos entre las tablas relacionadas. Para tu caso, tienes un unico campo en la segunda consulta y 9 en la primera.
3. into temp1? No se que tratas de hacer con eso.

Un saludo.
pero cual seria la sintaxis correcta del dif?
  #4 (permalink)  
Antiguo 10/06/2009, 14:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: favor revisen este select

Para hacer comparaciones con alias, en este caso dif, no debes utilizar where sino having.

otra posibilidad y mas sencilla es que hagas la operacion directamente en el where.

from t1
where saldo = 0
and datediff(fcha_vncmnto,fcha_ultmo_pgo) < 0
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:59.