tengo problemas con query. me ayudan?? | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

tengo problemas con query. me ayudan??

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
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.
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
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.
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

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.
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
Yo cambiaría la clausula WHERE por: WHERE (
solicitante_dir_ciudad IS NULL And
@Ciudad = ‘_Desconocido’
) Or
@Ciudad=’_TODOS’ Or
solicitante_dir_ciudad = @Ciudad

]]>