• Domingo 22 de Diciembre de 2024, 06:19

Autor Tema:  Sumar Datos En Sql  (Leído 2218 veces)

figalamx

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Sumar Datos En Sql
« en: Jueves 13 de Julio de 2006, 19:49 »
0
Tengo problemas con esta consulta:

[CODE]
with ADOGrupo1 do
  begin
    Close;
    SQL.Clear ;
    SQL.Add('SELECT COUNT(*) AS Sacos, ' +
            'SUM(Peso) AS Total ' +
            'FROM Captura ' +
    'WHERE ((Bascula = :Bas1) AND (Bascula = :Bas2) AND (Bascula = :Bas3))');
    Parameters.ParamByName('Bas1').Value := 4;
    Parameters.ParamByName('Bas2').Value := 5;
    Parameters.ParamByName('Bas3').Value := 6;
    Open;
  end;

El proposito de la misma es contar todos los registros y sumar los pesos de cada Bascula (balanza en otros paises). Asi como esta no funciona; sin embargo si solo dejo WHERE Bascula = 4 funciona bien. ¿Alguien podria decirme en que estoy mal?

Gracias!

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Sumar Datos En Sql
« Respuesta #1 en: Viernes 14 de Julio de 2006, 15:21 »
0
Citar
'WHERE ((Bascula = :Bas1) AND (Bascula = :Bas2) AND (Bascula = :Bas3))');
lo que pasa es que estas usando AND y deberias usar OR si quieresque sume siempre que sea bas1, bas2, bas3....

Código: Text
  1.  
  2.  'WHERE ((Bascula = :Bas1) OR (Bascula = :Bas2) OR (Bascula = :Bas3))');
  3.  
  4.  

figalamx

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Sumar Datos En Sql
« Respuesta #2 en: Viernes 14 de Julio de 2006, 17:09 »
0
Gracias Enko! Funciona!...pero no entiendo porque OR y no AND, si me puedes dar una luz para entender te lo agradezco.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Sumar Datos En Sql
« Respuesta #3 en: Viernes 14 de Julio de 2006, 17:52 »
0
Cita de: "figalamx"
Gracias Enko! Funciona!...pero no entiendo porque OR y no AND, si me puedes dar una luz para entender te lo agradezco.

leiste la variable "Bascula" y puede tener los siguientes valores: "Basc1", "Basc2", "Basc3".
Esta variable Basbula puede tener SOLO UN VALOR AL MISMO TIEMPO. Es decir, si vale Basc1, no puede ser ni Basc2 ni Basc3.

Si colocas
if (Bascula=Basc1) and (Bascula=Basc2) and (Bascula=Basc3) then....
SIEMPRE SERA FALSO, porque solo puede tener un valor.

Lo que a vos te interesa es Si Vale 1, 2 o 3. Pero no 1,2 y 3.

Es decir, se suma si Vale Basc1 o Basc2 o Basc3.
Por eso el OR

figalamx

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Sumar Datos En Sql
« Respuesta #4 en: Viernes 14 de Julio de 2006, 23:49 »
0
Ok, comprendido! gracias una vez mas!