GARANTIR DESCONTO

Fórum consulta sql entre duas tabelas verificando o menor arquivo #520812

25/05/2015

0


SELECT 
S.IdServico AS sIdServico, S.DataCadastro AS sDataCadastro, S.Situacao AS sSituacao, S.IdTipo AS sIdTipo, 
A.Nome AS aNome, A.IdServico AS aIdServico, A.Principal AS aPrincipal 
FROM Servico AS S 
INNER JOIN Arquivo AS A ON A.IdServico = S.IdServico 
WHERE S.IdTipo = 1 AND S.Situacao = 1 AND A.Principal = 1 
ORDER BY S.DataCadastro DESC;




Bom dia minha duvida é a seguinte no momento estou fazendo essa consulta para me retornar um arquivo que pertence a um serviço. Porem estou marcando manualmente
no banco um arquivo como verdadeiro e os outros com falsos para fazer esta consulta mas eu quero fazer ela da seguinte forma.
selecionar o menor IdArquivo onde o A.IdServico seja igual ao S.IdServico ja temtei fazer com a funcao (min) mas da erro.
quero fazer a consulta dessa forma para ficar mais facil e não precisar muda na tabela Arquivo um como princiopal e os outros como falsos pois teria que fazer varia querys.
se alguem tiver uma ideia que seja melhor eu tambem aceito kkkk.
Davi Maciel

Davi Maciel

Responder

Posts

25/05/2015

Marcos P

Qual coluna refere-se a "IdArquivo" ? Repare que ela não aparece no select !!!

Coloque aqui a query que você fez quando tentou usar o min() ?
Responder

Gostei + 0

25/05/2015

Davi Maciel

e pq nessa consulta nao coloquei.


a outra que estou tentado fazer e a segunte.


select min(IdArquivo) into @varArq,
S.IdServico AS sIdServico, S.DataCadastro AS sDataCadastro, S.Situacao AS sSituacao, S.IdTipo AS sIdTipo,
A.Nome AS aNome, A.IdServico AS aIdServico, A.Principal AS aPrincipal
from arquivo AS A
INNER JOIN Servico AS S ON A.IdServico = S.IdServico
where S.Situacao = 1 AND S.IdTipo = 2 ;
Responder

Gostei + 0

25/05/2015

Marcos P

Tente assim...

select S.IdServico AS sIdServico, S.DataCadastro AS sDataCadastro, S.Situacao AS sSituacao, S.IdTipo AS sIdTipo,
       A.Nome AS aNome, A.Principal AS aPrincipal, min(IdArquivo) As MinArquivo
from arquivo A INNER JOIN Servico S ON (A.IdServico = S.IdServico)
where S.Situacao = 1 AND S.IdTipo = 2
group by S.IdServico, S.DataCadastro, S.Situacao, S.IdTipo, A.Nome, A.Principal;
Responder

Gostei + 0

25/05/2015

Davi Maciel

a sua consulta retorna assim
[img]http://arquivo.devmedia.com.br/forum/imagem/391775-20150525-145118.png[/img]

e queria que retorna-se assim
[img]http://arquivo.devmedia.com.br/forum/imagem/391775-20150525-145142.png[/img]
Responder

Gostei + 0

25/05/2015

Davi Maciel

o primeiro arquivo de cada serviço. ou o ultimo tanto faz ou pela data o negocio e que eu preciso buscar um entre os demais
Responder

Gostei + 0

25/05/2015

Marcos P

Mas você precisa dos demais campos ?

Porque os colocou na query que me passou ?

Se for só o serviço, retire os demais campos e ajuste o GROUP BY...

select S.IdServico AS sIdServico, min(IdArquivo) As MinArquivo
from arquivo A INNER JOIN Servico S ON (A.IdServico = S.IdServico)
where S.Situacao = 1 AND S.IdTipo = 2
group by S.IdServico
Responder

Gostei + 0

25/05/2015

Davi Maciel

preciso pelo menos do nome do arquivo para uma galeria de fotos
Responder

Gostei + 0

25/05/2015

Marcos P

Você tem alguma ideia de como o "GROUP BY" funciona ?

Chegou a pesquisar para entender e adaptar a query ?

Ou a ideia é só achar alguém pra resolver seus problemas ?

select S.IdServico AS sIdServico, A.Nome AS aNome, min(IdArquivo) As MinArquivo
from arquivo A INNER JOIN Servico S ON (A.IdServico = S.IdServico)
where S.Situacao = 1 AND S.IdTipo = 2
group by S.IdServico, A.Nome;
Responder

Gostei + 0

25/05/2015

Davi Maciel

GROUP BY nao pesquisei

quanto a query eu pesquisei mas nao encontrei nada. nao sou como uns que perguntam primeiro pra depois pesquisar
quanto a essa parte "Ou a ideia é só achar alguém pra resolver seus problemas"

se vc nao tem paciência e é uma pessoa grossa sai dai e deixa uma pessoa como mais paciência fazer isso

até então estava conversando com vc sobre o assunto mas se ta te ocupando mt um mt obrigado pela ajuda e deixa pra la que daqui a pouco aparece uma pessoa
com vontade de ensinar e nao de tirar onda com quem nao sabe. blz?
Responder

Gostei + 0

25/05/2015

Marcos P

Davi,

Acho que você não entendeu... o melhor modo de resolver seu problema é você adaptar o material que lhe passei, afinal, sua necessidade pode mudar daqui 5 minutos e aprendendo, você tem condições de resolver.

Quanto a possibilidade de ajudar, meu interesse não é resolver o problema de ninguém, mas, sim, fazer com que as pessoas compreendam minimamente o que estão fazendo.

Inclusive, por diversas vezes, aqui mesmo no site, já ajudei pessoas via skype, gtalk e suporte remoto.

Sempre nessa linha, de ensinar a pescar !

Perdoe-me se se fui rude contigo, mas não tinha a menor ideia de o quão sensível você era...

Acredito que seu problema está resolvido, com essa última versão da query.

Senão está, que alguém possa lhe auxiliar melhor do que eu, porque, eu, encerro por aqui.

Boa sorte !
Responder

Gostei + 0

25/05/2015

Davi Maciel

esta funcionado de boa vlw obrigado e que lendo cada um interpreta de uma maneira me desculpe tambem e que eu sei como é isso as vezes a pessoa pergunta sem ´pesquisar antes mas nao foi o meu caso. pesquisei bastante só que nao estava perguntando de maneira correta ao google por isso nao encontre mais uma vez me desculpe.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar