Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/07/2010, 16:21
malbo74
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
Problema con consulta mysql y agrupamiento de campos

Estoy medio perdido con esta consulta, a ver si alguien puede darme una mano.

Tengo una tabla en mi base de datos con info de productos.
Esta tabla tiene idProducto, categoria, subcategoria, codigo, descripcion, stock, proveedor, marca, moneda y precio.

Particularmente mi problema es con los campos moneda y precio, ya que en ellos se acumulan la moneda (puede estar en pesos o dolares) y en precio el valor. Luego con código php, armo una función que toma el valor del dolar de otra tabla y actualiza los productos que estén en dólares para poder mostrar todo el catálogo en pesos. Hasta aquí todo bien.

Mi problema es que a la lista de resultados le agregue un filtro para listar los productos en orden ascendente o descendente, pero cuando lo hacen por precio, en la base de datos el valor es en pesos y dolares por lo que se muestra no es en orden correcto.

¿Hay posibilidad de hacer una consulta que ya me devuelva un valor de precio en pesos solamente o cómo debería hacer la consulta?
La estrucutura sería más o menos así de lo que estuve pensando: "SELECT moneda, precio AS valor FROM productos" pero lo que necesito es que si es en dólares lo multiplique por el valor del dolar.
Esta es la función con la que armo mi consulta a la base.

// Obtener productos
function GetProductos($categoria='', $subcategoria='', $campo='', $orden=''){
// Defino el WHERE para ver si es una categoría o el listado completo
if(!empty($categoria) || !empty($subcategoria))
$condicion = "WHERE categoria = '".$categoria."' AND subcategoria = '".$subcategoria."'";

// Defino el ORDER
if(empty($campo) || empty($orden)){
$order = "ORDER BY codigo ASC";
}else{
$order = "ORDER BY ".$campo." ".$orden."";
}

$consulta = "SELECT * FROM productos ".$condicion." ".$order."";
$resultado = mysql_query($consulta) or die ("<b>Fallo al seleccionar productos:</b><br />".mysql_error()."");
return $resultado;
}

Muchas gracias