CONSULTA SQL COM MAIS VARIAVIES

 Tópico anterior Próximo tópico Novo tópico

CONSULTA SQL COM MAIS VARIAVIES

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#493103 - 17/03/2020 11:21:50

ANDREIZS
CURITIBA - PR
Cadast. em:Maio/2010


Tenho uma consulta para preencher um Grid mas preciso adicionar mais um parmetro e no estou acertando . A consulta est assim;

SELECT PgtoDB.ID, PgtoDB.CLI_ID, PgtoDB.FormaPgto, PgtoDB.DataPgto, PgtoDB.VlrLiqd,  PgtoDB.ObsPgto, PgtoDB.Quitado, CLientedb.Nome
FROM PgtoDB LEFT JOIN Clientedb on Clientedb.Cli_ID = PgtoDB.Cli_ID
WHERE (((Cdate(PgtoDB.DataPgto) >= Cdate([][] & DataDE & [][])) AND (Cdate(PgtoDB.DataPgto) <= Cdate([][] & DataATE & [][]))))
AND (PgtoDB.Tipo = []-[])
ORDER BY PgtoDB.DataPGto Desc

Eu precisava que alm desses ele colocasse no Grid os lanamentos anteriores a DataATE onde PgtoDB.Quitado = False, algo como:

WHERE (Cdate(PgtoDB.DataPgto) <= Cdate([][] & DataATE & [][]) AND (PgtoDB.Quitado = FALSE))

Mas como j uso um intervalo de data esse no cosegue sobrepor.

Tem como fazer isso? Se fosse s proigramao usaria um IF e adicionaria aos resultados mas no sei como fazer no SQL.

Private Sub VB6_Junior
  If Face.Me = Then
      .Me
  Else
      Face = & &
  End If
End Sub

#493104 - 17/03/2020 11:34:01

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Porque tantos parntestes?! So completamente desnecessrios
SELECT PgtoDB.ID, PgtoDB.CLI_ID, PgtoDB.FormaPgto, PgtoDB.DataPgto, PgtoDB.VlrLiqd,  PgtoDB.ObsPgto, PgtoDB.Quitado, CLientedb.Nome
FROM PgtoDB LEFT JOIN Clientedb on Clientedb.Cli_ID = PgtoDB.Cli_ID
WHERE Cdate(PgtoDB.DataPgto) >= Cdate([][] & DataDE & [][]) AND Cdate(PgtoDB.DataPgto) <= Cdate([][] & DataATE & [][])
AND PgtoDB.Tipo = []-[]
ORDER BY PgtoDB.DataPGto Desc

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#493108 - 17/03/2020 13:25:48

ANDREIZS
CURITIBA - PR
Cadast. em:Maio/2010


Citação:
:
Porque tantos parntestes?! So completamente desnecessrios
SELECT PgtoDB.ID, PgtoDB.CLI_ID, PgtoDB.FormaPgto, PgtoDB.DataPgto, PgtoDB.VlrLiqd,  PgtoDB.ObsPgto, PgtoDB.Quitado, CLientedb.Nome
FROM PgtoDB LEFT JOIN Clientedb on Clientedb.Cli_ID = PgtoDB.Cli_ID
WHERE Cdate(PgtoDB.DataPgto) >= Cdate([][] & DataDE & [][]) AND Cdate(PgtoDB.DataPgto) <= Cdate([][] & DataATE & [][])
AND PgtoDB.Tipo = []-[]
ORDER BY PgtoDB.DataPGto Desc

Sei l, foram sendo acrescentados, mas no muda o problema do tpico.

Private Sub VB6_Junior
  If Face.Me = Then
      .Me
  Else
      Face = & &
  End If
End Sub

Resposta escolhida #493115 - 17/03/2020 18:20:55

NICKOSOFT
SANTO ANDRE
Cadast. em:Maio/2009


primeiro veja no banco como armazenado esse boolean
pq nao usar between pras datas?
tente depois do where (um grupo aqui) and (o outro aqui)
se nada der certo, resolva as querys em separado at que atendam cada uma seu caso e use union

Cada dia vejo surgirem novos []programadores[] de cdigo pronto aqui



#493628 - 24/04/2020 10:08:07

ANDREIZS
CURITIBA - PR
Cadast. em:Maio/2010


Citação:
:
primeiro veja no banco como armazenado esse boolean
pq nao usar between pras datas?
tente depois do where (um grupo aqui) and (o outro aqui)
se nada der certo, resolva as querys em separado at que atendam cada uma seu caso e use union


1 Boolean True/False mesmo, est correto
2 POr alguma razo BETWEEN no funciona ento, acabei fazendo desta forma ( ai que acabou surgindo um monte de () que no quis tirar mais)
3 WHERE () AND () no funcionou, sempre trazia resultados no desejados no meio
4 UNION funcionou, na primeira tentativa trouxe alguns resultados a mais que depois percebi serem linhas marcadas como excluidas, ajustei a query e agora est OK,

RESOLVIDO, OBGD

Private Sub VB6_Junior
  If Face.Me = Then
      .Me
  Else
      Face = & &
  End If
End Sub

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ANDREIZS em 24/04/2020 10:08:41