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

Ayuda con Unknown column 'calc' in 'where clause'

Estas en el tema de Ayuda con Unknown column 'calc' in 'where clause' en el foro de Bases de Datos General en Foros del Web. Maestros, tengo el siguiente query.... $query = "SELECT SUM(b_.`bod_mov_cantidad`) as cantidad, b.`bod_descripcion`, b.`bod_id` , b.`bod_stockcritico` as stock, CEIL(((25*b.`bod_stockcritico`)/100)+b.`bod_stockcritico`) as p1, CEIL(((50*b.`bod_stockcritico`)/100)+b.`bod_stockcritico`) as p2, IF(SUM(b_.`bod_mov_cantidad`)>=CEIL(((50*b.`bod_st ockcritico`)/100)+b.`bod_stockcritico`),1, ...
  #1 (permalink)  
Antiguo 08/08/2005, 22:35
 
Fecha de Ingreso: marzo-2005
Mensajes: 59
Antigüedad: 19 años, 7 meses
Puntos: 1
Exclamación Ayuda con Unknown column 'calc' in 'where clause'

Maestros, tengo el siguiente query....

$query = "SELECT SUM(b_.`bod_mov_cantidad`) as cantidad, b.`bod_descripcion`, b.`bod_id` , b.`bod_stockcritico` as stock, CEIL(((25*b.`bod_stockcritico`)/100)+b.`bod_stockcritico`) as p1, CEIL(((50*b.`bod_stockcritico`)/100)+b.`bod_stockcritico`) as p2, IF(SUM(b_.`bod_mov_cantidad`)>=CEIL(((50*b.`bod_st ockcritico`)/100)+b.`bod_stockcritico`),1,
IF(SUM(b_.`bod_mov_cantidad`)<CEIL(((50*b.`bod_sto ckcritico`)/100)+b.`bod_stockcritico`) AND SUM(b_.`bod_mov_cantidad`)>=CEIL(((25*b.`bod_stock critico`)/100)+b.`bod_stockcritico`),2,3)) AS calc FROM `bodega` b, `bod_movimiento` b_ WHERE b.`bod_id`=b_.`bod_id` AND ((b.`bod_descripcion` LIKE '".$_REQUEST['buscar']."%') or (b.`bod_descripcion` LIKE '%\ ".$_REQUEST['buscar']."%') or (b.`bod_id` LIKE '".$_REQUEST['buscar']."')) GROUP BY b.`bod_id` ORDER BY calc DESC";

funciona perfectamente, me entrega valores en segun porcentajes, o sea, para mayores de 50% = 1, entre 50% y 25% = 2 y menos de 25%=3, como les digo funciona bien, el problema o pregunta es que cuando quiero que solo me entregue por ejemplos los valores que sean =3 me sale el error "Unknown column 'calc' in 'where clause'", 'calc' hace referencia a la operacion IF (as calc)

el error ocurre al querer colocar entre ....(b.`bod_id` LIKE '".$_REQUEST['buscar']."')) GROUP BY b.`bod_id`.... la opcion ..... (b.`bod_id` LIKE '".$_REQUEST['buscar']."')) AND calc='3' GROUP BY b.`bod_id`....

lo extraño es que si reconoce el ORDER BY calc DESC

creen que me puedan ayudar..... GRACIAS

Última edición por mapino; 08/08/2005 a las 23:39
  #2 (permalink)  
Antiguo 09/08/2005, 05:58
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
El problema está en que calc es un campo agregado, no es un campo de una tabla, por eso en la where no te lo admite.
Para poner la condición esa pon lo siguiente después del group by:
Código:
having calc=3
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 09/08/2005, 07:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 59
Antigüedad: 19 años, 7 meses
Puntos: 1
Execelente VICE, funciona de maravilla!... GRACIAS
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 23:07.