Ajuda na SQL ??????
Pessoal, estou tentando fazer um Query utilizando 2 tabelas, essa query tem que selecionar os registro cadastrados a parti de uma data Inicial e Final, segue abaixo o codigo que estou utilizando:
With Query1 Do
Begin
SQL.Text:=´SELECT V.NomeCliente,V.DataVeiculacao,A.Colocacao FROM veiculacao V, anuncios A WHERE V.DataVeiculacao BETWEEN :DataInicial AND :DataFinal´;
ParamByName(´DataInicial´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePicker1.Date);
ParamByName(´DataFinal´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePicker2.Date);
SQL.Add(´ORDER BY V.NomeCliente´);
Open;
End;
Não está dando erro, mais não está selecionando os registros de acordo com a Data Inicial e Final, agora quando eu tiro a Tabela ´anuncios´, a SQL efetua a consulta normalmente.
Obrigado
With Query1 Do
Begin
SQL.Text:=´SELECT V.NomeCliente,V.DataVeiculacao,A.Colocacao FROM veiculacao V, anuncios A WHERE V.DataVeiculacao BETWEEN :DataInicial AND :DataFinal´;
ParamByName(´DataInicial´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePicker1.Date);
ParamByName(´DataFinal´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePicker2.Date);
SQL.Add(´ORDER BY V.NomeCliente´);
Open;
End;
Não está dando erro, mais não está selecionando os registros de acordo com a Data Inicial e Final, agora quando eu tiro a Tabela ´anuncios´, a SQL efetua a consulta normalmente.
Obrigado
Leandrosl
Curtidas 0
Respostas
Titanius
15/02/2006
Amigo leandro tente assim:
Quando for usar datas e horas, sempre passe como tal... nuinca como string... pois pode ocorrer este tipo de ´problema´
[]s
With Query1 Do Begin SQL.Text:=´SELECT V.NomeCliente,V.DataVeiculacao,A.Colocacao FROM veiculacao V, anuncios A WHERE V.DataVeiculacao BETWEEN :DataInicial AND :DataFinal´; ParamByName(´DataInicial´).AsDateTime := DateTimePicker1.Date; ParamByName(´DataFinal´).AsDateTime := DateTimePicker2.Date; SQL.Add(´ORDER BY V.NomeCliente´); Open; End;
Quando for usar datas e horas, sempre passe como tal... nuinca como string... pois pode ocorrer este tipo de ´problema´
[]s
GOSTEI 0
Emerson Nascimento
15/02/2006
outra coisa... em que momento a tabela [b:71b0d11b9d]veiculacao[/b:71b0d11b9d] está sendo relacionada com a tabela [b:71b0d11b9d]anuncios[/b:71b0d11b9d]?
da forma como está o resultado pode não ser o desejado...
da forma como está o resultado pode não ser o desejado...
GOSTEI 0
Leandrosl
15/02/2006
Emerson, utilizei seu codigo acima e não funciono, ele deu um erro dizendo ´Operation not Applicable ´,sobre a sua pergunta, ela está sendo relacionada no momento que estou abrindo o formulário
Obrigado
Obrigado
GOSTEI 0
Emerson Nascimento
15/02/2006
sempre passe o maior número de informações possível:
versão do delphi,
banco de dados,
versão do banco de dados,
componentes de acesso,
e o que mais for pertinente...
vamos lá...
[b:655fde05bc]quais campos são utilizados para fazer o relacionamento entre as tabelas veiculacao e anuncios?[/b:655fde05bc]
versão do delphi,
banco de dados,
versão do banco de dados,
componentes de acesso,
e o que mais for pertinente...
vamos lá...
with Query1 Do begin SQL.Text := ´SELECT ´+ ´ V.NomeCliente, V.DataVeiculacao, A.Colocacao ´+ ´FROM ´+ ´ veiculacao V ´+ ´inner join ´+ ´ anuncios A on (A. = V.) ´+ <-- como relacionar as tabelas? ´WHERE ´+ ´ V.DataVeiculacao BETWEEN :DataInicial AND :DataFinal ´+ ´ORDER BY ´+ ´ V.NomeCliente´; ParamByName(´DataInicial´).AsDate := DateTimePicker1.Date; ParamByName(´DataFinal´).AsDate := DateTimePicker2.Date; Open; end;
[b:655fde05bc]quais campos são utilizados para fazer o relacionamento entre as tabelas veiculacao e anuncios?[/b:655fde05bc]
GOSTEI 0
Leandrosl
15/02/2006
Emerson, eu vo tentar ser um pouco mais claro, bom eu tenho formulario que me mostra todos os registros aparti de Uma Data Inicial e Final informado pelo usuario, o campo que estou usando pra fazer a comparação é ´DataVeiculacao´ da Tabela ´Veiculacao´, segue abaixo o codigo que estou utilizando:
SQL.Text:=´SELECT * FROM veiculacao WHERE DataVeiculacao BETWEEN :DataInicial AND :DataFinal´;
ParamByName(´DataInicial´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePickerVeiculacao1.Date);
ParamByName(´DataFinal´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePickerVeiculacao2.Date);
SQL.Add(´ORDER BY NomeCliente´);
Open;
Esse formulario está funcionando do jeito que eu queria, sem problema algum. Mais agora estou precisando incluir um campo de outra tabela neste mesmo formulário, que é o campo ´Colocacao´ da Tabela ´anuncios´. Então a minha duvida é essa, como faço pra incluir este campo de outra tabela nesta SQL, e o campo que estou tentando compara é o ´DavaVeiculacao´. Será que este codigo que vc passo acima se enguadra neste processo que estou querendo fazer ?
Obs: O banco é MySQL, utilizo o delphi 7 e o Sistema Operacional é Windows XP
Obrigado
SQL.Text:=´SELECT * FROM veiculacao WHERE DataVeiculacao BETWEEN :DataInicial AND :DataFinal´;
ParamByName(´DataInicial´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePickerVeiculacao1.Date);
ParamByName(´DataFinal´).AsString := FormatDateTime(´yyyy-mm-dd´, DateTimePickerVeiculacao2.Date);
SQL.Add(´ORDER BY NomeCliente´);
Open;
Esse formulario está funcionando do jeito que eu queria, sem problema algum. Mais agora estou precisando incluir um campo de outra tabela neste mesmo formulário, que é o campo ´Colocacao´ da Tabela ´anuncios´. Então a minha duvida é essa, como faço pra incluir este campo de outra tabela nesta SQL, e o campo que estou tentando compara é o ´DavaVeiculacao´. Será que este codigo que vc passo acima se enguadra neste processo que estou querendo fazer ?
Obs: O banco é MySQL, utilizo o delphi 7 e o Sistema Operacional é Windows XP
Obrigado
GOSTEI 0
Rjun
15/02/2006
Para você exibir colunas de tabelas diferentes você deve criar um relacionamento entre elas, senão você não ira conseguir o que você quer. Então é necessário fazer um join entre as tabelas Veiculacao e Anuncios. Para isso, tem que existir um campo que seja comum entre as duas tabelas. O exemplo que o emerson passou esta perfeito.
GOSTEI 0