Pessoal, tenho uma parte do meu método onde consulto no BD um resultado... só que este resultado pode vir com mais de uma linha.
O caso é que as linhas que retornam, vem identicas só mudando um campo, pois é o campo fonte (origem do dado inserido) e não sei uma solução para caso ele tenha mais de um resultado para a mesma consulta, ele juntar no campo do excel gerado com as duas informações no mesmo campo.
try {
conn = ConnectionManager.obterConexao();
ps = conn.prepareStatement(SQL_PESQUISA_CARD);
ps.setString(1, Card);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
dispositivo = rs.getString("Dispositivo");
codTecnologia = rs.getString("CodTecnologia");
fonte = rs.getString("Fonte");
criarExcel.CriarPlanilhaColetiva(dispositivo, codTecnologia, fonte); // AQUI ENVIA PARA A CLASSE QUE GERA O EXCEL
}
} catch (Exception e) {
e.printStackTrace();
} finally {
ConnectionManager.fecharConexao(conn, null, ps);
}
É que envolve essa consulta no BD… e o envio para a classe que cria o excel… acho que vou arrumar o título
drsmachado
Você obtém os dados, através do DAO, só não sabe o que fazer com eles. Isso não tem relação com o DAO, mas com a lógica a ser aplicada na construção do relatório.
P
Pacato
isso… é que não ficou tão claro minha dúvida… pois disso dúvida de lógica COM o Dao e não NO DAO, rsrs… mas alterei o título…
É assim, geralmente a consulta gera duas linhas, só com esse campo fonte diferente, ai queria saber como faço para caso aconteça isso, eu coloco os dois resultados do campo fonte no mesmo campo do excel.
P
Pacato
Ninguém???
Não consigo imaginar uma lógica para isso…
Só sei que teria que ver um registro e verificar o próximo antes de chamar o método para criar o arquivo excel…
Mas o como fazer… não sei
pmlm
Qual é o motor de BD?
O Oracle tem o comando LISTAGG que me parece que é o que tu precisas.
Só que eu tenho esse campo chamado "Fonte" Que faço um select... E este campo possui dois valores distintos... e mesmo usando essa validação das datas ele traz dois valores...
Era melhor colocar essa condição da data no WHERE... e não no SELECT....
É por causa desse campo que to tomando na cabeça... tenho que pegar o último registro inserido, e trazer a fonte dele e consequentemente a data que foi inserido...
valeu pela força que está me dando
P
Pacato
Consegui juntando a fonte na mesma linha com o que vc tinha me passado…
string_agg((SELECT Dominio.Nome FROM Dominio WHERE Dominio.Codigo = Processamento.CodigoFonteDados), '/' ORDER BY CodigoFonteDados) AS Fonte, ...
CASE WHEN SIMCard.dataAlteracao > Dispositivo.dataAlteracao THEN SIMCard.dataAlteracao ELSE Dispositivo.dataAlteracao END AS dataAlt