Por favor me ajudem, tenho essa consulta sql abaixo, mas ela não esta fazendo o que eu queria. Bem eu queria que ela contasse quando o valor dentro da coluna modalidade fosse igual a um valor X , porem ela esta contando tudo independente do valor que esta na modalidade. Por exemplo: UM determinado usuário tem:
3 registros com modalidade = 19
2 registros com modalidade = 20
1 regustro com modalidade = 21.
Eu quero que ele me mostre :
3 registros com modalidade = 19
2 registros com modalidade = 20
1 regustro com modalidade = 21.
Porem ele esta me mostrando:
6 resgistros com modalidade = 19.
Me ajudem por favor:
SELECT
(CASE WHEN D.modalidade = '14' THEN COUNT(D.VALOR)END) AS conta_limite,
(CASE WHEN D.modalidade = '15' THEN COUNT(D.VALOR)END) AS conta_cdc,
(CASE WHEN D.modalidade = '19' THEN COUNT(D.VALOR)END) AS conta_sms,
(CASE WHEN D.modalidade = '14' THEN SUM(D.VALOR)END) AS soma_limite,
(CASE WHEN D.modalidade = '15' THEN SUM(D.VALOR)END) AS soma_cdc,
(CASE WHEN D.modalidade = '19' THEN SUM(D.VALOR)END) AS soma_sms,
(CASE WHEN D.produto = '2' THEN COUNT(D.VALOR)END) AS conta_consorcio,
(CASE WHEN D.produto = '4' THEN COUNT(D.VALOR)END) AS conta_consignado,
(CASE WHEN D.produto = '1' THEN COUNT(D.VALOR)END) AS conta_seguro,
(CASE WHEN D.produto = '2' THEN SUM(D.VALOR)END) AS soma_consorcio,
(CASE WHEN D.produto = '4' THEN SUM(D.VALOR)END) AS soma_consignado,
(CASE WHEN D.produto = '1' THEN SUM(D.VALOR)END) AS soma_seguro,
(CASE WHEN D.produto = '1' THEN SUM(D.receita_coop)END) AS soma_prolabore,
WHERE year(D.data) = '2015' and
month(D.data) = '$mes' and
U.pa = '$pa' and
D.situacao = 'Efetivado'
GROUP BY D.vendedor
ORDER BY soma_total
DESC LIMIT 100
Pergunta
juliano1613
Por favor me ajudem, tenho essa consulta sql abaixo, mas ela não esta fazendo o que eu queria. Bem eu queria que ela contasse quando o valor dentro da coluna modalidade fosse igual a um valor X , porem ela esta contando tudo independente do valor que esta na modalidade. Por exemplo: UM determinado usuário tem:
3 registros com modalidade = 19
2 registros com modalidade = 20
1 regustro com modalidade = 21.
Eu quero que ele me mostre :
3 registros com modalidade = 19
2 registros com modalidade = 20
1 regustro com modalidade = 21.
Porem ele esta me mostrando:
6 resgistros com modalidade = 19.
Me ajudem por favor:
SELECT
(CASE WHEN D.modalidade = '14' THEN COUNT(D.VALOR)END) AS conta_limite,
(CASE WHEN D.modalidade = '15' THEN COUNT(D.VALOR)END) AS conta_cdc,
(CASE WHEN D.modalidade = '19' THEN COUNT(D.VALOR)END) AS conta_sms,
(CASE WHEN D.modalidade = '14' THEN SUM(D.VALOR)END) AS soma_limite,
(CASE WHEN D.modalidade = '15' THEN SUM(D.VALOR)END) AS soma_cdc,
(CASE WHEN D.modalidade = '19' THEN SUM(D.VALOR)END) AS soma_sms,
(CASE WHEN D.produto = '2' THEN COUNT(D.VALOR)END) AS conta_consorcio,
(CASE WHEN D.produto = '4' THEN COUNT(D.VALOR)END) AS conta_consignado,
(CASE WHEN D.produto = '1' THEN COUNT(D.VALOR)END) AS conta_seguro,
(CASE WHEN D.produto = '2' THEN SUM(D.VALOR)END) AS soma_consorcio,
(CASE WHEN D.produto = '4' THEN SUM(D.VALOR)END) AS soma_consignado,
(CASE WHEN D.produto = '1' THEN SUM(D.VALOR)END) AS soma_seguro,
(CASE WHEN D.produto = '1' THEN SUM(D.receita_coop)END) AS soma_prolabore,
SUM(D.receita_coop + D.valor) AS soma_total,
D.produto, D.modalidade,
U.nome, U.cdc, U.consignado, U.consorcio, U.sms, U.limite_cartao, U.imagem, U.pa, U.prolabore
FROM produtividade_diaria D
INNER JOIN usuarios U
ON (D.vendedor = U.id)
WHERE year(D.data) = '2015' and
month(D.data) = '$mes' and
U.pa = '$pa' and
D.situacao = 'Efetivado'
GROUP BY D.vendedor
ORDER BY soma_total
DESC LIMIT 100
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.