none
Incluir campo en select sql RRS feed

  • Pregunta

  • Hola a todos:

    Tengo la siguiente sql en la cual me interesaría poder tambíen añadir un campo "Balance", no se como hacerlo para más de un campo.

     cmd.CommandText = "SELECT c1.Cód_GC, SUM(c2.SaldoUnificado) FROM ImportacionDatos c1 INNER Join ImportacionDatos c2 " &
                                              "On SUBSTRING(c2.Cód_GC, 1, 3) = c1.Cód_GC GROUP BY c1.Cód_GC 

    He estado probando y no me sale correctamente.

    Un cordial saludo.

    Gemma

    viernes, 2 de junio de 2017 6:19

Respuestas

  • Deleted
    • Propuesto como respuesta JM Claudio viernes, 2 de junio de 2017 10:34
    • Marcado como respuesta gemma_campillo viernes, 2 de junio de 2017 10:42
    viernes, 2 de junio de 2017 10:21
  • Hola, ya te ha contestado José , cambia la funcion LEFT() por un SubString() en cualquiera de las consultas y te saldrá, luego puedes jugar con esas consultas si necesitas obtener mas datos..he propuesto el post de José como solución, si aún así tuvieras problemas es un placer ayudar

    Saludos


    JM Claudio Dba/Consultor SQL/BI Pasiona - Spain

    • Marcado como respuesta gemma_campillo viernes, 2 de junio de 2017 10:42
    viernes, 2 de junio de 2017 10:38

Todas las respuestas

  • ¿Cuál es el cálculo requerido? ¿Qué es lo que tendría que aparecer en ese campo "Balance" que quieres añadir? Si nos explicas cómo lo harías "a mano" podemos ver la forma de incorporar ese mismo cálculo al SQL.
    viernes, 2 de junio de 2017 6:56
  • Hola Alberto:

    Mira, quiero comparar si las cuentas a 4 dígitos existen en las que son de 3 dígitos, y si existen poner el tipo de balance que tiene esa de 3 dígitos.

    Por ejemplo:

    Tengo en la columna Cód_GC que es de texto esto:

    Cód_GC      SaldoUnificado      Balance

    4549                   125,00              -            'Aquí iría:  ACTIVO

    454                     125,00           ACTIVO

    Entonces necesito poner ACTIVO en esa cuenta de 4 dígitos: 4549, de forma que al final me queden solo las de 4 dígitos  que no tengan tipo de balance, que querrá decir que no existen en las de 3 dígitos y poder emitir un mensaje al usuario de que esas cuentas no existen.

    No se si me he expolicado bien, si no lo entiendes te amplío las esxplicaciones.

    Gracias querido amigo.

    Un abrazo.

    Gemma

    viernes, 2 de junio de 2017 7:58
  • Hola, entiendo que al final solo quieres las de 4 dígitos y que ademas no exista su correspondencia en 3 dígitos, si quisieras todas las de 4 dígitos quitamos el ultimo HAVING, y si quieres todas hacer un UNION con las cuentas de 3 dígitos.

    Select c1.cod_gc,SUM(c1.SaldoUnificado)as saldo,c2.balance from ImportacionDatos as c1
                                              left join ImportacionDatos as c2
                                              on left(c1.cod_gc,3)=c2.cod_gc
                                              where LEN(c1.cod_gc)=4 and LEN(c2.cod_gc)=3
                                              group by c1.cod_gc
    										  having c2.balance is null
                                              


    JM Claudio Dba/Consultor SQL/BI Pasiona - Spain

    viernes, 2 de junio de 2017 9:09
  • Deleted
    viernes, 2 de junio de 2017 10:02
  • Hola a Claudio y a José:

    Muchísimas gracias por responder e intentar ayudarme.,He tenido un descuido "importante" y es que no he comentado que la base de datos es SqlCOmpact 4.0 y por lo que se ve, me dá error en "Left" y es que al parecer Left no se lleva bien con Sql Compact.

    Respecto a lo que me pregunta José, la respuesta es "no", no puede haber mas de una cuenta de 3 dígitos para una o varias de 4 dígitos.

    Ambas sql parecen fantásticas pero me da ese maldito error.

    Os agradezco enormente vuestra y ayuda y espero me disculpéis.

    Un cordial saludo.

    Gemma


    viernes, 2 de junio de 2017 10:10
  • Deleted
    • Propuesto como respuesta JM Claudio viernes, 2 de junio de 2017 10:34
    • Marcado como respuesta gemma_campillo viernes, 2 de junio de 2017 10:42
    viernes, 2 de junio de 2017 10:21
  • Hola, ya te ha contestado José , cambia la funcion LEFT() por un SubString() en cualquiera de las consultas y te saldrá, luego puedes jugar con esas consultas si necesitas obtener mas datos..he propuesto el post de José como solución, si aún así tuvieras problemas es un placer ayudar

    Saludos


    JM Claudio Dba/Consultor SQL/BI Pasiona - Spain

    • Marcado como respuesta gemma_campillo viernes, 2 de junio de 2017 10:42
    viernes, 2 de junio de 2017 10:38
  • Hola a los dos:

    Muchísimas gracias, ya funciona todo.

    Un plkacer que me hayáis ayudado.

    Un cordial saludo a los 2.

    Gemma

    viernes, 2 de junio de 2017 10:42