none
Ayuda con Código IIF RRS feed

  • Pregunta

  • Hola, estoy programando en C# con base de datos en Access. Tengo esta parte de código dentro una consulta en la que quiero hacer una suma con condiciones y me sale error.

    comando.CommandText = @"SELECT Grupo, 
                            SUM(A) AS AX,
                            SUM(B) AS BX,
                            SUM(A) - SUM(B) AS CX,
                            SUM(COUNT(IIF(A > B, 2, 0)) + COUNT(IIF(A = B, 1, 0))) AS PTS
                            FROM (
                            SELECT IDCategoria, Grupo1 AS Grupo, A, B FROM Salidas
                            UNION ALL
                            SELECT IDCategoria, Grupo2 AS Grupo, B, A FROM Salidas
                            ) AS TBL
                            WHERE IDCategoria = @IDCategoria
                            GROUP BY Grupo";
    comando.Parameters.AddWithValue("@IDCategoria", Categoria.SelectedValue);

    El error es el siguiente: "No puede haber función de agregado en la expresión". Me aconsejaron el uso de CASE WHEN....THEN ELSE END, pero no funciona con bases de datos Access.

    Por favor si me pudieran indicar la corrección. Gracias!!!


    Franklin S.P.


    • Cambiado webJose miércoles, 28 de febrero de 2018 18:30 No es C#.
    • Editado FranklinSP miércoles, 28 de febrero de 2018 18:35 Consulta completa
    miércoles, 28 de febrero de 2018 18:23

Todas las respuestas

  • Hola.  Su pregunta no tiene relación con el lenguaje de programación C#.  Moveré su pregunta a un foro más adecuado.

    Mi contribución:  Con solamente ver eso, no entiendo lo que trata de lograr.  Lo mejor sería que muestre la consulta SQL completa.  Por lo que veo allí, siento que SUM() está de más.  Le repito, lo mejor sería mostrar todo el SQL y tal vez explicar el objetivo que desea lograr.


    Jose R. MCP
    Code Samples

    miércoles, 28 de febrero de 2018 18:29
  • Ya lo solucioné, cambié esta parte así y funcionó:

    SUM(IIF(A > B, 2, 0)) + SUM(IIF(A = B, 1, 0)) AS PTS


    Franklin S.P.

    jueves, 1 de marzo de 2018 12:10