Fazendo consulta com três campos da Tebela em Lazarus
13/12/2017
0
DM.tbCadMorador.Close; DM.tbCadMorador.SQL.Clear; DM.tbCadMorador.SQL.Add('SELECT ESPECIALIDADE_1, ESPECIALIDADE_2, ESPECIALIDADE_3 FROM CADMORADOR'); DM.tbCadMorador.Open;
Estou desenvolvendo um sistema de cadastro que venha a ser cadastrado as especialidades de cada pessoa, sendo que eu quero consultar por especialidade. Desde já agradeço pela ajuda dos amigos...
Helton Garrido
Post mais votado
18/12/2017
SELECT MOR.nomeMORADOR, ESP.desceESPECIALIDADE FROM CADMORADOR MOR INNER JOIN CADESPECIALIDADE ESP ON ESP.codigoESPECIALIDADE = MOR.codESPECIALIDADEfk
Luiz Vichiatto
Mais Posts
18/12/2017
Helton Garrido
Existem duas tabelas uma Morador e a outra Especialidades, sendo que a Tabela Morador irar receber os dados da Tabela Especialidade e isto já esta sendo feito, o que eu não estou conseguindo e fazer é a consulta entre as colunas especialidade_1, Especialidade_2 e Especialidade_3 que já estão na Tabela Morador. Existem dados chamados dentista em cada uma das colunas e o que eu queria é que mediante a consulta entre as três colunas especialidade_1, Especialidade_2 e Especialidade_3 me retornassem na gride nomes das pessoas que pediram a especialidade dentista. e isso eu não estou conseguindo
18/12/2017
Luiz Vichiatto
Pode ocorrer de mais de um ter a mesma especialidade?
Pode utilizar clausula case, dependendo da SGBD, claro tem a sintaxe correta para utilização.
No MSSQL tem uma função que compara campos e retorna somente o que está preenchido, mas tem que pesquisar como poderá funcionar
Firebir --->>> https://www.devmedia.com.br/o-case-do-firebird/1489
MSSQL --->>> https://www.devmedia.com.br/trabalhando-com-expressoes-case-e-a-funcao-iif-no-t-sql/31292
Segue uma possível ideia do que terá que fazer, se este for o teu caso.
SELECT MOR.NOME CASE WHEN ESPECIALIDADE_1 IN (SELECT ESP.cadESPECIALIDADE FROM ESPECIALIDADE ESP WHERE ESP.COD_ESPECIALIDADE = codigo_especialidade_procurada) THEN (SELECT ESP.cadESPECIALIDADE FROM ESPECIALIDADE ESP WHERE ESP.COD_ESPECIALIDADE = codigo_especialidade_procurada) ) WHEN ESPECIALIDADE_2 IN (SELECT ESP.cadESPECIALIDADE FROM ESPECIALIDADE ESP WHERE ESP.COD_ESPECIALIDADE = codigo_especialidade_procurada) THEN (SELECT ESP.cadESPECIALIDADE FROM ESPECIALIDADE ESP WHERE ESP.COD_ESPECIALIDADE = codigo_especialidade_procurada) ) ESPECIALIDADE_3 IN (SELECT ESP.cadESPECIALIDADE FROM ESPECIALIDADE ESP WHERE ESP.COD_ESPECIALIDADE = codigo_especialidade_procurada) THEN (SELECT ESP.cadESPECIALIDADE FROM ESPECIALIDADE ESP WHERE ESP.COD_ESPECIALIDADE = codigo_especialidade_procurada) ) ELSE '' END
Espero que isto já te de uma direção
Att
Clique aqui para fazer login e interagir na Comunidade :)