Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.90 KB | None | 0 0
  1.  
  2. -- Define um Rank de Fornecedores por Contrato e Seleciona apenas os 3 maiores por Contrato
  3. SELECT NomeFornecedor, CNPJ, rua, numero, cidade, Contato
  4. FROM (
  5.        SELECT @rownum := IF(@anterior = F.idFornecedores, @rownum + 1, 1) AS rank,
  6.               P.nome AS NomeFornecedor,
  7.               F.idFornecedores AS CodFornecedor,
  8.               F.CNPJ,
  9.               P.rua,
  10.               P.numero,
  11.               P.cidade,
  12.               P.email AS Contato,
  13.               C.idContratos,
  14.               SUM(COALESCE(it.qtdCompra, 0)) AS qtdeFornecida,
  15.               @anterior := F.idFornecedores
  16.        FROM (SELECT @rownum := 0) r,
  17.             (SELECT @anterior := 0) a,
  18.             Fornecedores F
  19.        INNER JOIN Pessoas P ON P.idPessoas = F.idFornecedores
  20.        INNER JOIN Contratos C ON C.idFornecedores = F.idFornecedores
  21.        LEFT JOIN ItensCompra it ON it.idFornecedores = F.idFornecedores
  22.        GROUP BY P.nome, F.idFornecedores, F.CNPJ, C.idContratos
  23.       ) F
  24. WHERE F.rank <= 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement