Aclaro que lo que mande antes, esta lejos de seguir buenas practicas :P :) 
ahora eso, retocado por alguien que las siga puede quedar lindo :)

--------------------------------------------------------------------------------

rdi2k | Ezequiel Jadib | MSN: [EMAIL PROTECTED] | Blog: ejadib.wordpress.com 
  ----- Original Message ----- 
  From: Trafelati Víctor Hugo 
  To: [EMAIL PROTECTED] 
  Sent: Friday, January 05, 2007 4:08 PM
  Subject: [dbms] Consulta SQL


  Tiene que devolver columnas porque el resultado de esta consulta se pasa a un 
control que la espera de esta forma. El control no lo hice yo.
  Por cierto me olvidé de mencionar que esta consulta se debería hacer en un 
procedimiento almacenado.
  hasta ahora hice esto:

  declare @jjj bigint, @final bigint, @strConsulta as nvarchar(4000)
  set @jjj = 0
  set @strConsulta = ''
  select @final = count(idGerencia) from Gerencias
  while @jjj < @final
  Begin
   set @strConsulta = @strConsulta + N'(SELECT COUNT(idUsuario) FROM Usuarios 
WHERE idGerencia= 1) AS Sistemas'
   if @jjj <> @final - 1
    set @strConsulta = @strConsulta + N', '
   set @jjj = @jjj + 1
  End
  set @strConsulta = N'SELECT ' + @strConsulta
  exec (@strConsulta)

  Ahora lo que me falta es cambiar el 1 y Sistemas por el valor que saque de 
una consulta select idGerencia, nombreGerencia from Gerencias



    ----- Original Message ----- 
    From: Gustavo Candelero 
    To: [EMAIL PROTECTED] 
    Sent: Friday, January 05, 2007 1:29 PM
    Subject: [dbms] Consulta SQL


    ¿ por que tiene que devolver por columnas? ¿no puede ser que devuelva por 
filas? Asi seria mas facil:

    SELECT GER.NombreGerencia, COUNT(*) AS Cantidad

    FROM Gerencia GER JOIN Uusarios USU ON GER.IDgerencia  = USU.IDGerencia

    GROUP BY GER.NombreGerencia








              Gustavo Candelero

--------------------------------------------------------------------------
      From: Trafelati Víctor Hugo <[EMAIL PROTECTED]>
      Reply-To: [email protected]
      To: "Gustavo Candelero" <[EMAIL PROTECTED]>
      Subject: [dbms] Consulta SQL
      Date: Thu, 4 Jan 2007 19:01:14 -0300


      Hola tengo una problemita con esta consulta que quiero hacer:
      Nota: los nombres de tablas y campos son de ejemplo

      Tengo una tabla "Gerencias" con campo "idGerencia" y campo 
"nombreGerencia" con n registros

      Tengo otra tabla "Usuarios" con campo "idUsuario", campo "nombreUsuario", 
campo idGerencia 



      Necesito armar una consulta que me devuelva una columna por cada registro 
de la tabla "Gerencias" que se llame igual al campo "nombreGerencia" 

      Esta consulta devuelve una fila con la cantidad de usuarios que tiene 
cada gerencia



      El resultado esperado sería así:

            Sistemas
           Contable
           Compras
           Ventas
           
            10
           10
           20
           50
           



      Había pensado algo así pero necesito reemplazar los Alias y la condición 
del "idGerencia"



      SELECT (SELECT COUNT(idUsuario) FROM Usuarios WHERE idGerencia= 1) AS 
Sistemas, 

                  (SELECT COUNT(idUsuario) FROM Usuarios WHERE idGerencia= 2) 
AS Contable, 

      (SELECT COUNT(idUsuario) FROM Usuarios WHERE idGerencia= 3) AS Compras, 

      (SELECT COUNT(idUsuario) FROM Usuarios WHERE idGerencia= 4) AS Ventas 



      Muchas Gracias

      Trafelati Víctor Hugo
      Gerente
      SIT - Sistemas Informáticos
      [EMAIL PROTECTED]
      www.sitsoft.com.ar




----------------------------------------------------------------------------
    Regístrate en el nuevo Windows Live Messenger beta. ¡Haz click aquí! 


----------------------------------------------------------------------------


    No virus found in this incoming message.
    Checked by AVG Free Edition.
    Version: 7.5.432 / Virus Database: 268.16.6/617 - Release Date: 05/01/2007 
11:11

Responder a