SQL Server Performance

tengo problemas con query. me ayudan??

Discussion in 'Preguntas sobre SQL Server en Español.' started by razmar, Nov 16, 2004.

  1. razmar New Member

    Dice tener error en linea 4 (cerca de '=')

    SELECT ISNULL(solicitante_dir_ciudad,'DESCONOCIDO'),
    COUNT(*) AS [Cantidad_de_Solicitantes],
    COUNT(*) * 100.00 / (SELECT COUNT(*) FROM dat_datos_importados) AS [Por Ciento%] FROM dat_datos_importados
    WHERE solicitante_dir_ciudad = CASE Ciudad.value='TODOS' THEN solicitante_dir_ciudad ELSE @Ciudad.Value END)
    GROUP BY solicitante_dir_ciudad
    ORDER BY solicitante_dir_ciudad

    necesito ayuda..
    gracias anticipadas
  2. Luis Martin Moderator

    Prueba:

    where solicitante_dir_ciudad = 'TODOS' then.....

    Por otro lado ejecuta usando el analizador de consultas sp_helpsort, dado que serìa importante saber si la instalación se realizó con case sensitive o case insensiteve.



    Luis Martin
    Moderator
    SQL-Server-Performance.com

    All postings are provided “AS IS” with no warranties for accuracy.

  3. razmar New Member

    Hola! tengo dos datasets:

    1. Casos_Aprobados: (query)

    SELECT ISNULL(solicitante_dir_ciudad,'DESCONOCIDO'),
    COUNT(*) AS [Cantidad_de_Solicitantes],
    COUNT(*) * 100.00 / (SELECT COUNT(*) FROM dat_datos_importados) AS [Por Ciento%] FROM dat_datos_importados
    WHERE solicitante_dir_ciudad = CASE WHEN @Ciudad='TODOS' THEN solicitante_dir_ciudad ELSE @Ciudad END
    GROUP BY solicitante_dir_ciudad
    ORDER BY solicitante_dir_ciudad

    2. Ciudades: (query)

    SELECT ' TODOS ' AS solicitante_dir_ciudad
    UNION
    SELECT ISNULL(solicitante_dir_ciudad, ' DESCONOCIDO')
    FROM dat_datos_importados
    GROUP BY solicitante_dir_ciudad
    ORDER BY solicitante_dir_ciudad


    No me sale error y puedo escoger (list box) en el reporte, la ciudad que quiero ver la informacion. El problema es que cuando escojo a 'TODOS' no me sale nada y lo quiero es q me salgan todas las ciudades.. Lo mismo me pasa cuando escojo a 'DESCONOCIDO', no me aparece nada.. si me puedes ayudar.. gracias
  4. Luis Martin Moderator

    Podrías mostrar algunas filas de la tabla dat_datos_importados?.
    Especialmente la columna solicitante_dir_ciudad.



    Luis Martin
    Moderator
    SQL-Server-Performance.com

    All postings are provided “AS IS” with no warranties for accuracy.

  5. razmar New Member

    Ya puedo seleccionar en el list box el campo _TODOS y me salen todas las ciudades con sus datos, pero cuando selecciono el campo _DESCONOCIDO, no me salen los datos de ese campo en particular.. (_DESCONOCIDO son los datos nulos encontrados, ISNULL)

    1.Casos Aprobados:

    SELECT ISNULL(solicitante_dir_ciudad,'_DESCONOCIDO '),
    COUNT(*) AS [Cantidad_de_Solicitantes],
    COUNT(*) * 100.00 / (SELECT COUNT(*) FROM dat_datos_importados) AS [Por Ciento%] FROM dat_datos_importados
    WHERE solicitante_dir_ciudad = CASE WHEN @Ciudad='_TODOS' THEN solicitante_dir_ciudad ELSE @Ciudad END
    GROUP BY solicitante_dir_ciudad
    ORDER BY solicitante_dir_ciudad


    2. Ciudades

    SELECT '_TODOS ' AS solicitante_dir_ciudad
    UNION
    SELECT ISNULL(solicitante_dir_ciudad,'_DESCONOCIDO ')
    FROM dat_datos_importados
    GROUP BY solicitante_dir_ciudad
    ORDER BY solicitante_dir_ciudad
  6. Luis Martin Moderator

    Si tu realizas un
    select * from dat_datos_importados where solicitante_dir_ciudad is null

    aparecen filas?


    Luis Martin
    Moderator
    SQL-Server-Performance.com

    All postings are provided “AS IS” with no warranties for accuracy.

  7. razmar New Member

    Salio casi perfecto.. Pero falta un detallito: Cuando escoja el campo de _TODOS, que aparezca todas las ciudades INCLUYENDO el campo de _DESCONOCIDO. Aparecen todas las ciudades exepto _DESCONOCIDO.

    SELECT ISNULL(solicitante_dir_ciudad, '_DESCONOCIDO '),
    COUNT(*) AS [Cantidad_de_Solicitantes],
    COUNT(*) * 100.00 / (SELECT COUNT(*) FROM dat_datos_importados) AS [Por Ciento%] FROM dat_datos_importados
    WHERE (solicitante_dir_ciudad IS NULL AND @Ciudad = '_Desconocido') OR
    (solicitante_dir_ciudad = CASE WHEN Ciudad='_TODOS' THEN solicitante_dir_ciudad ELSE @Ciudad END)
    GROUP BY solicitante_dir_ciudad
    ORDER BY solicitante_dir_ciudad
  8. c_maldon Member

    Yo cambiaría la clausula WHERE por:

    WHERE (
    solicitante_dir_ciudad IS NULL And
    @Ciudad = '_Desconocido'
    ) Or
    @Ciudad='_TODOS' Or
    solicitante_dir_ciudad = @Ciudad

Share This Page