Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Define um Rank de Fornecedores por Contrato e Seleciona apenas os 3 maiores por Contrato
- SELECT NomeFornecedor, CNPJ, rua, numero, cidade, Contato
- FROM (
- SELECT @rownum := IF(@anterior = F.idFornecedores, @rownum + 1, 1) AS rank,
- P.nome AS NomeFornecedor,
- F.idFornecedores AS CodFornecedor,
- F.CNPJ,
- P.rua,
- P.numero,
- P.cidade,
- P.email AS Contato,
- C.idContratos,
- SUM(COALESCE(it.qtdCompra, 0)) AS qtdeFornecida,
- @anterior := F.idFornecedores
- FROM (SELECT @rownum := 0) r,
- (SELECT @anterior := 0) a,
- Fornecedores F
- INNER JOIN Pessoas P ON P.idPessoas = F.idFornecedores
- INNER JOIN Contratos C ON C.idFornecedores = F.idFornecedores
- LEFT JOIN ItensCompra it ON it.idFornecedores = F.idFornecedores
- GROUP BY P.nome, F.idFornecedores, F.CNPJ, C.idContratos
- ) F
- WHERE F.rank <= 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement