Leudassdf 6 Denunciar mensagem Publicado 13 de Janeiro de 2013 (editado) Boas pessoal, select nome_loja,unidades_vendidas from vendas,lojas where cod_loja=(select cod_loja from vendas where (select max(unidades_vendidas) from vendas where cod_cd=1) Eu tentei fazer isto. No entanto isto nao funciona. O que eu quero é retornar o numero de unidades vendidas e o nome da loja onde foram vendidas mais unidades. Ou seja quero saber o cod_loja que vendeu mais, e depois ir a tabela lojas e saber o nome da loja correspondente ao cod... Alguem sabe como posso resolver? Editado 13 de Janeiro de 2013 por Leudassdf 1 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
apocsantos 220 Denunciar mensagem Publicado 13 de Janeiro de 2013 Boa tarde, Penso que ficaria algo como isto: select * from vendas join lojas where cod_loja = ( select cod_loja, max (unidades_vendidas) from vendas) Mas nao testei o código. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Leudassdf 6 Denunciar mensagem Publicado 13 de Janeiro de 2013 Boa tarde, Penso que ficaria algo como isto: select * from vendas join lojas where cod_loja = ( select cod_loja, max (unidades_vendidas) from vendas) Mas nao testei o código. Cordiais cumprimentos, Apocsantos Infelizmente nao funciona.. Obrigada a mesma Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Rechousa 66 Denunciar mensagem Publicado 13 de Janeiro de 2013 Olá, Tens uma relação entre as duas tabelas, certo? Experimenta assim: SELECT TOP 1 nome_loja, SUM(unidades_vendidas) AS soma_unidades_vendidas FROM vendas V INNER JOIN lojas L ON V.cod_loja = L.cod_loja WHERE cod_cd=1 GROUP BY nome_loja ORDER BY soma_unidades_vendidas DESC; Espero ter ajudado. Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Leudassdf 6 Denunciar mensagem Publicado 13 de Janeiro de 2013 Olá, Tens uma relação entre as duas tabelas, certo? Experimenta assim: SELECT TOP 1 nome_loja, SUM(unidades_vendidas) AS soma_unidades_vendidas FROM vendas V INNER JOIN lojas L ON V.cod_loja = L.cod_loja WHERE cod_cd=1 GROUP BY nome_loja ORDER BY soma_unidades_vendidas DESC; Espero ter ajudado. Funcionou Obrigado. So tenho uma duvida na parte do inner join. compreendo a syntax mas eu tenho algumas duvidas quanto ao que faz. Existe o Join,inner join,left join,right join certo? Mas o que fazem? estive a ver na w3school mas o meu ingles não é muito "famoso". Seria possivel explicar-me o que fazem? Só mais uma pequena pergunta o v e o l que estão a segui a vendas e lojas é uma espécie de variável? Cumprimentos e mais uma vez Muito Obrigado Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
apocsantos 220 Denunciar mensagem Publicado 13 de Janeiro de 2013 Boa tarde, V e L são aliases para as tabelas Vendas e Loja, para não ter de se escrever o nome da tabela por inteiro. Inner Join : Apenas devolve as linhas quando existe uma correspondência em ambas as tabelas. Left Join : Devolve todas as linhas da tabela à esquerda, mesmo que não existam correspondências na tabela à direira da instrução. Right Join : Devolve todas as linhas da tabela à direita, mesmo que não existam correspondências na tabela à esquerda da instrução. Join : devolve dados de duas ou mais tabelas cm base nas relações entre as tabelas. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Leudassdf 6 Denunciar mensagem Publicado 13 de Janeiro de 2013 Boa tarde, V e L são aliases para as tabelas Vendas e Loja, para não ter de se escrever o nome da tabela por inteiro. Inner Join : Apenas devolve as linhas quando existe uma correspondência em ambas as tabelas. Left Join : Devolve todas as linhas da tabela à esquerda, mesmo que não existam correspondências na tabela à direira da instrução. Right Join : Devolve todas as linhas da tabela à direita, mesmo que não existam correspondências na tabela à esquerda da instrução. Join : devolve dados de duas ou mais tabelas cm base nas relações entre as tabelas. Cordiais cumprimentos, Apocsantos Muito obrigada. Simples mas eficaz este esclarecimento. Cumprimentos Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites