AJUDA COM SELECT NO SQL
Ola pessoal to me perdendo aqui para gerar uma pesquisa no banco de dados
em uma tabela tenho campos (DOC,Status,vencimento e etc)
preciso que a pesquisa retorne
todos os registros com status =CANCELADO não importa a data de vencimento, e também os que o status sejam <> de CANCELADO mais apenas dos últimos 6 meses
seria Select dentro de outro Select?
trabalho pouco com SQL e realmente me perdi nessa consulta
em uma tabela tenho campos (DOC,Status,vencimento e etc)
preciso que a pesquisa retorne
todos os registros com status =CANCELADO não importa a data de vencimento, e também os que o status sejam <> de CANCELADO mais apenas dos últimos 6 meses
seria Select dentro de outro Select?
trabalho pouco com SQL e realmente me perdi nessa consulta
Prezado,
Não ficou claro qual banco de dados voce utiliza. Eu uso PostGreSQL, então darei informações genéricas, mas que com alguma pesquisa na documentação do banco de dados voce usa, será fácil adptar.
Voce deverá usar UNION. Voce tem duas consultas (SQL), faça os dois SQL em separados, depois junte ambos com UNION, assim:
select BLA, BLA, BLA from tabela where (....)
UNION
select BLA, BLA, BLA from tabela where (....)
Detalhe: ambos os SQL devem retornar as mesmas colunas, para que o UNION funcione. Também existe o UNION ALL, que tem algumas diferenças do UNION.
Não ficou claro qual banco de dados voce utiliza. Eu uso PostGreSQL, então darei informações genéricas, mas que com alguma pesquisa na documentação do banco de dados voce usa, será fácil adptar.
Voce deverá usar UNION. Voce tem duas consultas (SQL), faça os dois SQL em separados, depois junte ambos com UNION, assim:
select BLA, BLA, BLA from tabela where (....)
UNION
select BLA, BLA, BLA from tabela where (....)
Detalhe: ambos os SQL devem retornar as mesmas colunas, para que o UNION funcione. Também existe o UNION ALL, que tem algumas diferenças do UNION.
Citação::
Prezado,
Não ficou claro qual banco de dados voce utiliza. Eu uso PostGreSQL, então darei informações genéricas, mas que com alguma pesquisa na documentação do banco de dados voce usa, será fácil adptar.
Voce deverá usar UNION. Voce tem duas consultas (SQL), faça os dois SQL em separados, depois junte ambos com UNION, assim:
select BLA, BLA, BLA from tabela where (....)
UNION
select BLA, BLA, BLA from tabela where (....)
Detalhe: ambos os SQL devem retornar as mesmas colunas, para que o UNION funcione. Também existe o UNION ALL, que tem algumas diferenças do UNION.
uso firebir 2.5
Talvez seja uma pesquisa mais fácil, pelo que entendi é uma única tabela ( em uma tabela tenho campos (DOC,Status,vencimento e etc) ), então ficaria algo assim em um único select e usando a condição OR
select * from suatabela
where ( status = "Cancelado" ) <- sua primeira condição todos os registros com status =CANCELADO não importa a data de vencimento
or ( status <> "Cancelado" and datavencimento <= 22/06/2022 ) <- sua segunda consição - e também os que o status sejam <> de CANCELADO mais apenas dos últimos 6 meses
Dessa forma ele vai trazer tudo, se o registro estiver cancelado e se CASO o registro não estiver cancelado e for de 6 meses para trás
select * from suatabela
where ( status = "Cancelado" ) <- sua primeira condição todos os registros com status =CANCELADO não importa a data de vencimento
or ( status <> "Cancelado" and datavencimento <= 22/06/2022 ) <- sua segunda consição - e também os que o status sejam <> de CANCELADO mais apenas dos últimos 6 meses
Dessa forma ele vai trazer tudo, se o registro estiver cancelado e se CASO o registro não estiver cancelado e for de 6 meses para trás
Tópico encerrado , respostas não são mais permitidas