SELECT
Olá amigos, gostaria de saber como selecionar através do select um perÃodo de datas de 01/01/2002 até 01/01/2005, mas só me mostrar os campos que for true ex:.
estoque data verdadeiro
bala 01/01/2002 true
bolo 05/09/2003 false
terra 06/10/2003 true
bolsa 10/11/2004 true
sapato 15/11/2004 false
.........
.........
caneta 01/01/2005 true
Me mostre só os que estão como true ( bala, terra, bolsa, caneta )
Obrigado
estoque data verdadeiro
bala 01/01/2002 true
bolo 05/09/2003 false
terra 06/10/2003 true
bolsa 10/11/2004 true
sapato 15/11/2004 false
.........
.........
caneta 01/01/2005 true
Me mostre só os que estão como true ( bala, terra, bolsa, caneta )
Obrigado
De uma olhada no artigo 3 de Programação de Banco de Dados que tem o que precisa lá.
Digamos que a tabela se chame tb_estoque e os campos chamem-se Produto (nome do produto), Cadastro (data de cadastro) e Ativo (o flag verdadeiro/falso). Para que a listagem ficasse como a sua, você poderia montar uma instrução mais ou menos como:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between #01/01/2005# and #01/15/2005# and Ativo = True"
Para utilizar-se de valores digitados no intervalo de datas, use, por exemplo:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between #" & Format$(Text1.Text,"MM/DD/YYYY") & "# and # & Format$(Text2.Text,"MM/DD/YYYY") & # and Ativo = True"
Para permitir, além do intervalo de datas, selecionar se serão apresentados os Ãtens Ativo=True ou Ativo=False, você pode optar por algo como:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between #" & Format$(Text1.Text,"MM/DD/YYYY") & "# and #" & Format$(Text2.Text,"MM/DD/YYYY") & "# and Ativo = " & Iif(Option1.Value = True, "True","False") & " "
E ainda, caso a base de dados não seja padrão MS-Access, você pode utilizar as seguintes variantes:
SQL-Server:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between '" & Format$(Text1.Text,"MM/DD/YYYY") & "' and '" & Format$(Text2.Text,"MM/DD/YYYY") & "' and Ativo = " & Iif(Option1.Value = True, "True","False") & " "
Oracle:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between To_Date('" & Format$(Text1.Text,"DD/MM/YYYY") & ",'DD/MM/YYYY') and To_Date('" & Format$(Text2.Text,"DD/MM/YYYY") & "','DD/MM/YYYY') and Ativo = " & Iif(Option1.Value = True, "1","0") & " "
...e por aà segue.
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between #01/01/2005# and #01/15/2005# and Ativo = True"
Para utilizar-se de valores digitados no intervalo de datas, use, por exemplo:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between #" & Format$(Text1.Text,"MM/DD/YYYY") & "# and # & Format$(Text2.Text,"MM/DD/YYYY") & # and Ativo = True"
Para permitir, além do intervalo de datas, selecionar se serão apresentados os Ãtens Ativo=True ou Ativo=False, você pode optar por algo como:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between #" & Format$(Text1.Text,"MM/DD/YYYY") & "# and #" & Format$(Text2.Text,"MM/DD/YYYY") & "# and Ativo = " & Iif(Option1.Value = True, "True","False") & " "
E ainda, caso a base de dados não seja padrão MS-Access, você pode utilizar as seguintes variantes:
SQL-Server:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between '" & Format$(Text1.Text,"MM/DD/YYYY") & "' and '" & Format$(Text2.Text,"MM/DD/YYYY") & "' and Ativo = " & Iif(Option1.Value = True, "True","False") & " "
Oracle:
"Select Produto as estoque, Cadastro as data, Ativo as verdadeiro from tb_estoque where Cadastro between To_Date('" & Format$(Text1.Text,"DD/MM/YYYY") & ",'DD/MM/YYYY') and To_Date('" & Format$(Text2.Text,"DD/MM/YYYY") & "','DD/MM/YYYY') and Ativo = " & Iif(Option1.Value = True, "1","0") & " "
...e por aà segue.
Tópico encerrado , respostas não são mais permitidas