Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com uma dúvida. É possível determinar um select a partir de uma escolha?
Ex.
SELECT
CASE
WHEN a < b THEN select * from tabela1
WHEN d < e THEN select * form tabela2
END
FROM tabela;
Algo parecido. Se uma condição for atendida select1 , se outra condição for atendida: select2.
O que acontece: estou com um relatorio que preciso criar no winthor e não consigo melhorar isso. Tenho de fazer três relatorios como solução. Se eu consigo implantar isso, eu faria somente um relatorio.
Tipo se marcar um campo, sai um relatorio. Se marcar outro, saí outro relatorio.No sistema winthor existe uma rotina que me permite criar relatorios. Eu preencho o código(select), ele me traz os dados e me premite montar um relatorio com os dados trazidos pelo select.
O que acontece: quando eu monto um relatorio por exemplo de todas as vendas no período entre datas, a rotina me permite criar um tipo de variável colocando um ' : ' antes de qualquer palavra. exe: ':data1'.
ex:
SELECT vlvendainicial, vlvendatotal FROM pcvendas WHEN dtvendas BETWEENS :data1 AND :data2
O problema é: se eu preciso criar um relatorio em que alem de filtrar os valores entre datas, tambem escolha se quer ou não os valore maior que R$100,00, eu preciso criar um outro relatorio. Então o que eu queria saber é se é possível fazer o seguinte:
IF :resp = 'S' THEN
SELECT * FROM teste
ELSIF :resp = 'N' THEN
SELECT * FROM TESTE2
END IF;
Mais ou menos issoEste winfor não permite criar uma outra variável para valor informado ?
Algo como
Where
....
And valor >= :valor
Informaria zero para todos
>
Em 15/01/2019 at 21:44, mr22robot disse:
No sistema winthor existe uma rotina que me permite criar relatorios. Eu preencho o código(select), ele me traz os dados e me premite montar um relatorio com os dados trazidos pelo select.
O que acontece: quando eu monto um relatorio por exemplo de todas as vendas no período entre datas, a rotina me permite criar um tipo de variável colocando um ' : ' antes de qualquer palavra. exe: ':data1'.
ex:
SELECT vlvendainicial, vlvendatotal FROM pcvendas WHEN dtvendas BETWEENS :data1 AND :data2
O problema é: se eu preciso criar um relatorio em que alem de filtrar os valores entre datas, tambem escolha se quer ou não os valore maior que R$100,00, eu preciso criar um outro relatorio. Então o que eu queria saber é se é possível fazer o seguinte:
IF :resp = 'S' THEN
SELECT * FROM teste
ELSIF :resp = 'N' THEN
SELECT * FROM TESTE2
END IF;
Mais ou menos isso
Bom dia.
Acredito que o problema nem seja esse. O problema é que as condições no Oracle não me permite retornar um select inteiro igual eu mostrei no exemplo.
Ou há alguma forma?Seria ?
SELECT vlvendainicial, vlvendatotal
FROM pcvendas
WHERE dtvendas BETWEEN :data1 AND :data2
AND vlvendatotal >= :valor
Infornado o valor de corte
Atente a síntaxe do SQL !
Os relatórios seriam muito diferentes ?
Explique melhor o problema.