-1
I am doing a query of people by filter, but I have come across the following problems:
1º LIKE Condition %%, (because the user will not always fill the fields "Document Number" and "Name" - returning empty "");
2º Dropdownlist when the user leaves with the option "All" or "All", it returns the Selectedvalue equal to zero '0'.
I would like the filter query to work.
Below the data model: Below the People Query Screen: Below part of the Get Personal Filterfilter method, along with the SELECT I’m using:
command.CommandText = @"SELECT ID_PESSOA, FOTO, N_DOCUMENTO, NOME,
ID_TIPO_PESSOA, DESCRICAO_TIPO, ID_STATUS, DESCRICAO_STATUS,
STRING_AGG(DESCRICAO_BLOCO, ',') WITHIN GROUP (ORDER BY DESCRICAO_BLOCO) AS DESCRICAO_BLOCO,
STRING_AGG(NOMENCLATURA, ',') AS NOMENCLATURA
FROM (
SELECT PESSOAS.ID_PESSOA, PESSOAS.FOTO, PESSOAS.N_DOCUMENTO, PESSOAS.NOME,
PESSOAS.ID_TIPO_PESSOA, TIPOS_PESSOAS.DESCRICAO_TIPO, PESSOAS.ID_STATUS, STATUS.DESCRICAO_STATUS,
BLOCOS.ID_BLOCO, BLOCOS.DESCRICAO_BLOCO,
STRING_AGG(UNIDADES.NOMENCLATURA, ',') WITHIN GROUP (ORDER BY UNIDADES.NOMENCLATURA) AS NOMENCLATURA
FROM ResidencialSolarDiLucca.dbo.PESSOAS
INNER JOIN
ResidencialSolarDiLucca.dbo.TIPOS_PESSOAS
ON PESSOAS.ID_TIPO_PESSOA = TIPOS_PESSOAS.ID_TIPO_PESSOA
INNER JOIN ResidencialSolarDiLucca.dbo.STATUS
ON PESSOAS.ID_STATUS = STATUS.ID_STATUS
LEFT JOIN PESSOAS_APARTAMENTOS
ON PESSOAS.ID_PESSOA = PESSOAS_APARTAMENTOS.ID_PESSOA
LEFT JOIN APARTAMENTOS
ON PESSOAS_APARTAMENTOS.ID_APARTAMENTO = APARTAMENTOS.ID_APARTAMENTO
LEFT JOIN ResidencialSolarDiLucca.dbo.BLOCOS
ON APARTAMENTOS.ID_BLOCO = BLOCOS.ID_BLOCO
LEFT JOIN ResidencialSolarDiLucca.dbo.UNIDADES
ON APARTAMENTOS.ID_UNIDADE = UNIDADES.ID_UNIDADE
WHERE STATUS.DESCRICAO_STATUS = 'Ativo'
AND N_DOCUMENTO LIKE '%@N_DOCUMENTO%'
AND NOME LIKE '%@NOME%'
AND (PESSOAS.ID_TIPO_PESSOA IS NULL OR PESSOAS.ID_TIPO_PESSOA = @ID_TIPO_PESSOA)
AND (PESSOAS.ID_STATUS IS NULL OR PESSOAS.ID_STATUS = @ID_STATUS)
AND (APARTAMENTOS.ID_BLOCO IS NULL OR APARTAMENTOS.ID_BLOCO = @ID_BLOCO)
AND (APARTAMENTOS.ID_UNIDADE IS NULL OR APARTAMENTOS.ID_UNIDADE = @ID_UNIDADE)
GROUP BY PESSOAS.ID_PESSOA, PESSOAS.FOTO, PESSOAS.N_DOCUMENTO, PESSOAS.NOME,
PESSOAS.ID_TIPO_PESSOA, TIPOS_PESSOAS.DESCRICAO_TIPO, PESSOAS.ID_STATUS, STATUS.DESCRICAO_STATUS, BLOCOS.ID_BLOCO, DESCRICAO_BLOCO) AS X
GROUP BY ID_PESSOA, FOTO, N_DOCUMENTO, NOME,
ID_TIPO_PESSOA, DESCRICAO_TIPO, ID_STATUS, DESCRICAO_STATUS
ORDER BY NOME";
command.Parameters.AddWithValue("@N_DOCUMENTO", nDocumento);
command.Parameters.AddWithValue("@NOME", nome);
command.Parameters.AddWithValue("@ID_TIPO_PESSOA", idTipoPessoa);
command.Parameters.AddWithValue("@ID_STATUS", idStatus);
command.Parameters.AddWithValue("@ID_BLOCO", idBloco);
command.Parameters.AddWithValue("@ID_UNIDADE", idUnidade);
I removed the first condition "STATUS.DESCRICAO_STATUS = 'Active'", as it was repeated immediately below.
– Gabriel Toledo Padinha
You can edit the question to make corrections and include more information about the problem if necessary.
– Danizavtz