Consulta passando paramentros

(leandroauler) #1

Galera,

Sou novo no scriptcase e tenho que fazer uma consulta que no PHP puro, funciona normalmente e quando tento fazer no scriptcase nao funciona.

O selelct é o seguinte:

SELECT a.,b. from
(SELECT COUNT(Idaut) AS GUIAS1, IdLinha AS LINHA1, Turma AS TURMA1, Data as DATA1, SUM(Passageiros) as PASSAGEIROS1 from guias WHERE Turma = 1 GROUP BY IdLinha, Turma
)a,
(SELECT COUNT(Idaut) AS GUIAS2, IdLinha AS LINHA2, Turma AS TURMA2, Data AS DATA2, SUM(Passageiros) as PASSAGEIROS2 from guias WHERE Turma = 2 GROUP BY IdLinha, Turma
)b
WHERE b.LINHA2 = a.LINHA1 OR a.GUIAS1 = 1 AND b.GUIAS2 = 1

Criei uma consulta onde o cliente entra com a data e a linha, mas nao sei criar as variaveis globais para fazer a passagem de paramentros.

Alguem sabe como me ajudar?

Obrigado.

(system) #2

bom dia leandro,
faça da seguinte forma
onde vc utiliza uma variavel coloque a entre colchetes
ex:
variável de tipo inteiro: [varNumero]
variável de tipo texto: ‘[varTexto]’

automaticamente o scriptCase criará as variáveis globais e ao executar a aplicação
aparece uma tela para passagem dos parâmetros.

Boa sorte.

(leandroauler) #3

Boa tarde alex,

Quando executo a aplicação já exibo os campos de Data e um select para o cliente selecionar a linha.

Exemplo:

Data : 23/03/2010
Linha: 201

E quando clicar em PESQUISAR Esses valores da data e da linha que quero passar para o select:

SELECT a.,b. from
(SELECT COUNT(Idaut) AS GUIAS1, IdLinha AS LINHA1, Turma AS TURMA1, Data as DATA1, SUM(Passageiros) as PASSAGEIROS1 from guias WHERE Data= ‘2009-03-23’ AND Idlinha = 1 AND Turma = 1 GROUP BY IdLinha, Turma
)a,
(SELECT COUNT(Idaut) AS GUIAS2, IdLinha AS LINHA2, Turma AS TURMA2, Data AS DATA2, SUM(Passageiros) as PASSAGEIROS2 from guias WHERE Data= ‘2009-03-23’ AND Idlinha = 1 AND Turma = 2 GROUP BY IdLinha, Turma
)b
WHERE b.LINHA2 = a.LINHA1 OR a.GUIAS1 = 1 AND b.GUIAS2 = 1

Sabe como faço isso

(system) #4

Olhando para o select não percebi onde vc quer inserir as variáveis
exemplo(num where ou conta de resultado).

por favor detalhe melhor a sua aplicação para eu poder ajudá-lo

(leandroauler) #5

Alterei a mensagem acima… Tem o select completo…

(rayfcrols) #6

Leandro, não sei se entendi exatamente o que v/c deseja, passar paramento para outra aplicação e lá exibido o resultado do select? ou que o select seja exibido nesta mesma aplicação?
prq a depender disto terão que usadas rotinas diferentes.

(system) #7

Altere seu select e deixe-o da seguinte forma:
SELECT a.,b. from
(SELECT COUNT(Idaut) AS GUIAS1, IdLinha AS LINHA1, Turma AS TURMA1, Data as DATA1, SUM(Passageiros) as PASSAGEIROS1 from guias WHERE Data= ‘[var_data]’ AND Idlinha = [var_linha] AND Turma = 1 GROUP BY IdLinha, Turma
)a,
(SELECT COUNT(Idaut) AS GUIAS2, IdLinha AS LINHA2, Turma AS TURMA2, Data AS DATA2, SUM(Passageiros) as PASSAGEIROS2 from guias WHERE Data= ‘[var_data]’ AND Idlinha = [var_linha] AND Turma = 2 GROUP BY IdLinha, Turma
)b
WHERE b.LINHA2 = a.LINHA1 OR a.GUIAS1 = 1 AND b.GUIAS2 = 1

sugiro que vc edite campo data para o padrão brasileiro(DD/MM/YYYY)
no sqlServer: convert(varchar(10), data, 103)

(leandroauler) #8

Alex,

Ve se fica mais facil para vc entender o que quero fazer:

Quando eu quero criar uma consulta no php sem o scriptcase, crio um formulario com os campos que desejo consultar no banco.

Entao crio um formulario de consulta e outra pagina para trazer o resultado.

Como faria isso no scriptcase?

(leandroauler) #9

Rayfcrols,

Ve se fica mais facil para vc entender o que quero fazer:

Quando eu quero criar uma consulta no php sem o scriptcase, crio um formulario com os campos que desejo consultar no banco.

Entao crio um formulario de consulta e outra pagina para trazer o resultado.

Como faria isso no scriptcase?

(rayfcrols) #10

Leandro faça o seguinte:

no SQL deixe assim:

SELECT a.,b. from
(SELECT COUNT(Idaut) AS GUIAS1, IdLinha AS LINHA1, Turma AS TURMA1, Data as DATA1, SUM(Passageiros) as PASSAGEIROS1 from guias WHERE Turma = 1 [cond] GROUP BY IdLinha, Turma
)a,
(SELECT COUNT(Idaut) AS GUIAS2, IdLinha AS LINHA2, Turma AS TURMA2, Data AS DATA2, SUM(Passageiros) as PASSAGEIROS2 from guias WHERE Turma = 2 [cond] GROUP BY IdLinha, Turma
)b
WHERE b.LINHA2 = a.LINHA1 OR a.GUIAS1 = 1 AND b.GUIAS2 = 1

Agora crie uma nova aplicação tipo controle Add dois campos um tipo data e outro tipo texto
e no OnValidate do controle coloque:

$cond = “”;
sc_set_global($cond);
if (empty({linha_filtro})and sc_date_empty({data_filtro})){
$cond = “”;
} elseif (empty({linha_filtro})){
$cond = “AND Data = “.”’”.{data_filtro}."’";
} elseif (sc_date_empty({data_filtro})){
$cond = “AND Idlinha = “.”’”.{linha_filtro}."’";
} else {
$cond = “AND Data = “.”’”.{data_filtro}."’ AND Idlinha = “.”’".{linha_filtro}."’";
}
sc_redir(sua_consulta.php,cond=$cond);

(leandroauler) #11

Ray,

Obrigado pela ajuda funcionou.