Inner Join causa duplicidade ???
É windows form.
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Jair Souza
Curtidas 0
Respostas
Marcos P
18/03/2015
Jair,
Essa query está correta !
Repare que você fez a ligação das tabelas para poder relacionar dados da Locação ( ID, Locatario, Funcionario, Hora, DataSaida, Valor e DataEntrega ) e um dado do Item ( DataDevolução ).
Ou seja, sua consulta não é mais de locações, mas sim de itens da locação.
Se você realmente precisa da DataDevolução, sugiro focar a query em itens ( colocando mais colunas dessa tabela ).
Se você quer focar em locações, elimine o relacionamento entre as tabelas e tente obter a Data de devolução em outro ponto da aplicação.
Agora, se você quer manter isso assim mesmo, pode tentar :
> Faz sentido relacionar itens sem data de devolução ? Senão, coloque uma condição na condição na query para eliminar esses casos...
> Coloque DISTINCT na query...
> Em ambos os casos as repetições continuaram, mas em menor quantidade
Ok ?!?
Essa query está correta !
Repare que você fez a ligação das tabelas para poder relacionar dados da Locação ( ID, Locatario, Funcionario, Hora, DataSaida, Valor e DataEntrega ) e um dado do Item ( DataDevolução ).
Ou seja, sua consulta não é mais de locações, mas sim de itens da locação.
Se você realmente precisa da DataDevolução, sugiro focar a query em itens ( colocando mais colunas dessa tabela ).
Se você quer focar em locações, elimine o relacionamento entre as tabelas e tente obter a Data de devolução em outro ponto da aplicação.
Agora, se você quer manter isso assim mesmo, pode tentar :
> Faz sentido relacionar itens sem data de devolução ? Senão, coloque uma condição na condição na query para eliminar esses casos...
> Coloque DISTINCT na query...
> Em ambos os casos as repetições continuaram, mas em menor quantidade
Ok ?!?
GOSTEI 0
Ronaldo Lanhellas
18/03/2015
É windows form.
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Você pode usar o DISTINCT() para evitar a duplicidade. Assim:
SELECT distinct(loca) FROM locacao loca inner join item_locacao item on loca.id = item.id_locacao
GOSTEI 0
Ronaldo Lanhellas
18/03/2015
É windows form.
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Você pode usar o DISTINCT() para evitar a duplicidade. Assim:
SELECT distinct(loca) FROM locacao loca inner join item_locacao item on loca.id = item.id_locacao
GOSTEI 0
Ronaldo Lanhellas
18/03/2015
É windows form.
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Tendo a tabela " Locação " que está ligada a tabela " ItemLocação ", quando uma locação tem mais de um itemlocação, e carrega o grid de "Locação" aparece uma linha de locação para cada itemlocação.(Como na imagem abaixo)
Neste select que tem um INNER JOIN, para poder filtrar as que não tem a data de devolução.
Alguém sabe como resolver isto ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-213827.jpg[/img]
Você pode usar o DISTINCT() para evitar a duplicidade. Assim:
SELECT distinct(loca) FROM locacao loca inner join item_locacao item on loca.id = item.id_locacao
GOSTEI 0
Jair Souza
18/03/2015
Parece que falta alguma coisa...
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150319-145340.jpg[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150319-145340.jpg[/img]
GOSTEI 0
Marcos P
18/03/2015
Tenta assim...
[img]http://arquivo.devmedia.com.br/forum/imagem/378439-20150319-152330.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/378439-20150319-152330.png[/img]
GOSTEI 0
Jair Souza
18/03/2015
Funcionou, muito obrigado VALEU MUITO, !
Ficou assim :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150319-153133.jpg[/img]
Ficou assim :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150319-153133.jpg[/img]
GOSTEI 0
Jair Souza
18/03/2015
Tenta assim...
[img]http://arquivo.devmedia.com.br/forum/imagem/378439-20150319-152330.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/378439-20150319-152330.png[/img]
Valeu, descobrimos simultaneamente.
GOSTEI 0
Marcos P
18/03/2015
Beleza !!!
GOSTEI 0