Fórum Consultar varias tabelas no banco #372003
06/07/2009
0
campos da tabela acesso
Codigo , DataEntrada, DataSaida, HoraEntrada, HoraSaida, nome
vejá so, tenho varias tabelas com o inicio do nome: Acesso_mmyyyy
onde mm=mes e yyyy = ano
preciso fazer um select em que me retorne as tabelas do mes 1 ao 12 em um determinando ano, verificando se existe um determinado nome.
desde já agradeço a atenção.
Sdph
Curtir tópico
+ 0Posts
06/07/2009
Emerson Nascimento
isso pode ser resolvido de várias formas, tanto através Delphi como do próprio banco de dados (desde que você informe qual bando de dados está utilizando)
Gostei + 0
06/07/2009
Sdph
O fulando de tal entrou no mes 01,02, 03.... portanto preciso unir varias tabelas já que minhas tabelas tem nomes diferentes como acesso_012009 a acesso_082009.
desde já agradeço a atenção...
Gostei + 0
06/07/2009
Daniel.felgar
select codigo , dataEntrada, dataSaida, horaEntrada, horaSaida, nome
from acesso_012009
union
select codigo , dataEntrada, dataSaida, horaEntrada, horaSaida, nome
from acesso_022009
union
select codigo , dataEntrada, dataSaida, horaEntrada, horaSaida, nome
from acesso_032009
... etc...
Mas porque voce nao pode usar somente uma tabela para isso???
nao ha necessidade de varias tabelas!!!!
Gostei + 0
06/07/2009
Osocram
Gostei + 0
07/07/2009
Cipriano
where codigo_012009.codigo=codigo_013009.codigo and codigo_013009.codigo=codigo_014009.codigo etc...
Gostei + 0
14/07/2009
Sdph
e dizer que o meu problema ja foi solucionado, conforme segue codigo abaixo:
valeu!!!!.
procedure TFrm_FiltroIntervaloES.BitBtn2Click(Sender: TObject);
Var nRegistro : Integer;
var Id, nMesInicio, nAnoInicio, nMesFinal, nAnoFinal, mesAnoInicial, mesAnoFinal : Integer;
var nNome, Inicio, Fim : String;
begin
ibAcesso.Close;
ibAcesso.SelectSQL.Clear;
//****************************************************************************************************************************************************
if FormatDateTime(´mm´, edDataInicial.Date) <= FormatDateTime(´mm´, edDataFinal.Date) then
begin
nMesInicio := StrToInt(FormatDateTime(´mm´,edDataInicial.Date));
nAnoInicio := StrToInt(FormatDateTime(´yyyy´,edDataInicial.Date));
Inicio := dm.zeroesquerda(nMesInicio, 2);
fim := dm.zeroesquerda(nMesFinal,2);
nMesFinal := StrToInt(FormatDateTime(´mm´,edDataFinal.Date));
nAnoFinal := StrToInt(FormatDateTime(´yyyy´,edDataFinal.Date));
mesAnoInicial := nMesInicio+nAnoInicio;
mesAnoFinal := nMesFinal+nAnoFinal;
id := ibCadastroID_CODIGO.AsInteger;
nNome := ibCadastroNOME.AsString;
end;
//****************************************************************************************************************************************************
Memo1.Lines.Clear;
while (mesAnoInicial <= mesAnoFinal) do
begin
if (nAnoInicio < nAnoFinal) then
begin
while nMesInicio <= 12 do
begin
Inicio := dm.zeroesquerda(nMesInicio, 2);
Memo1.Lines.Add(´Select * From ACESSO´ + ´_´+Inicio+intToStr(nAnoInicio) + ´ Where DataEntrada >=:locEntrada And DataEntrada <=:locSaida´ );
Memo1.Lines.Add(´ And id_Cadastro =:locCadastro And Nome =:locNome ´);
Memo1.Lines.Add(´union all´);
nMesInicio := nMesInicio +1 ;
end;
nMesInicio := 1;
end;
if (nAnoInicio = nAnoFinal) then
begin
while (nMesInicio <= nMesFinal) do
begin
Inicio := dm.zeroesquerda(nMesInicio, 2);
Memo1.Lines.Add(´Select * From ACESSO´ + ´_´+Inicio+intToStr(nAnoInicio) + ´ Where DataEntrada >=:locEntrada And DataEntrada <=:locSaida´ );
Memo1.Lines.Add(´ And id_Cadastro =:locCadastro And Nome =:locNome ´);
if (nMesInicio < nMesFinal)then
begin
Memo1.Lines.Add(´union all´);
end;
nMesInicio := nMesInicio +1 ;
end;
end;
mesAnoInicial := nMesInicio+nAnoInicio;
nAnoInicio := nAnoInicio +1;
end;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)