Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/04/2011, 18:50
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: consulta para MSHflex en Visual Basic

Cita:
tengo que hacer una comparacion de dos campos para que me arroje resultados numericos y poder colocarlos en un MSHFlex segun el que sea mayor ya me hace la comparacion pero solo me arroja 0 y 1 lo estube leyendo y creeo que la comparacion solo hace eso alguna idea de como le puedo hacer, la verdad es que en base de datos no soy muy diestra alguna opinion me serviria de mucho.
Una comparación es una operación lógica, y toda operación lógica devuelve verdadero (TRUE) o falso (FALSE). En los lenguajes de programación, esto se traduce en 1 (True) y 0 (False), porque una computadora sólo comprende números. El SQL hace lo mismo: Toda comparación devuelve un TRUE o FALSE matemático, es decir, 1 ó 0.
Eso es para que comprendas por qué te devuelve lo que te devuelve.
Yendo a tu problema, si la comparación que buscas no se hace en el SELECT, sino en el WHERE. y si quieres que te devuelva registros completos, la cosa es simple:
Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE campo1>campo2;
Pero si la cosa es que te devuelva el campo que posee el mayor valor, se deben usar funciones de MySQL y resolver:
Código MySQL:
Ver original
  1. SELECT IF(campo1>campo2 , campo1, campo2) ValorMayor
  2. FROM tabla;
Si quieres otras alternativas, será mejor que des más detalles sobre las tablas y acerca de qué tipos de datos estas comparando.

Tip final: Para nosotros, a nivel de bases de datos, si el resultado lo vas a usar en un MSHFlex, en un DataGrid o en un ListView es absolutamente irrelvante. Eso es programación. Acá la cosa es sólo SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)