Boa noite
Sou novo nestas coisas e queria saber se me podiam ajudar num pequena coisa em SQL.
Como faço para que quando seleciona 2 atributos com datas, não se repitam. Eu fim uma pequena base de dados para uma parque de estacionamento onde faço o registo da hora de entrada e o registo da hora de saida, mas o que distingue a hora de entrada e hora de saida é o atributo entrada/saida o qual é preenchido com ‘E’ caso seja hora de entrada e com ‘S’ na hora saida, mas quando seleciono, aparece o seguinte (para a mesma entrada, mostra todas as saidas):
09/11/01 23:00:00 | 09/11/01 23:40:00
09/11/01 23:00:00 | 09/11/02 12:30:00
09/11/02 12:00:00 | 09/11/01 23:40:00
09/11/02 12:00:00 | 09/11/02 12:30:00
e o que deveria aparecer era:
09/11/01 23:00:00 | 09/11/01 23:40:00
09/11/02 12:00:00 | 09/11/02 12:30:00
e depois queria contabilizar o tempo que esteve no parque.
A estrutura para o parque estou a usar em PostGres:
CREATE TABLE parque(
IdLocalP CHAR(10),
ValorMinuto NUMERIC,
PRIMARY KEY (IdLocalP),
FOREIGN KEY (Idlocalp) REFERENCES servico
);
CREATE TABLE tem(
IdLocalP CHAR(10),
idLocal CHAR(10),
PRIMARY KEY (idLocal),
FOREIGN KEY (Idlocalp) REFERENCES servico
);
CREATE TABLE cancela(
idLocal CHAR(10),
Entrada_Saida CHAR(1) CHECK(Entrada_Saida=‘E’ OR Entrada_Saida=‘S’),
PRIMARY KEY (idLocal),
FOREIGN KEY (Idlocal) REFERENCES tem
);
CREATE TABLE passagem(
IdVIAVERDE INTEGER CHECK(IdVIAVERDE>0),
idLocal CHAR(10),
Data TIMESTAMP,
PRIMARY KEY (IdVIAVERDE,idLocal,Data),
FOREIGN KEY (IdVIAVERDE) REFERENCES clienteViaVerde,
FOREIGN KEY (Idlocal) REFERENCES tem
);
e o código que utilzei foi este:
select tabela2.idViaVerde, tabela2.idLocalP, tabela2.dataEntrada, passagem.data as dataSaida
from (select idViaVerde, parque.idLocalP, passagem.Data as dataEntrada
from passagem, cancela, tem, parque
where passagem.idLocal=cancela.idLocal and
cancela.idlocal=tem.idlocal and
tem.idlocalp=parque.idlocalp and
passagem.Data BETWEEN '09/11/01 00:00:00' and '09/11/30 23:59:59' and
passagem.idViaverde=123 and
cancela.entrada_saida='E') tabela2, passagem, cancela
where tabela2.idViaVerde=passagem.idViaverde and
passagem.idLocal=cancela.idlocal and
cancela.entrada_saida='S'
group by tabela2.idViaVerde,tabela2.idLocalP,tabela2.dataentrada, passagem.data;
alguém me pode ajudar, sff.
Desde já obrigado