Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT
- data_avaliacao,
- IFNULL( SUM( CASE WHEN a.avaliacao='Bom' THEN total END),0 ) AS `Bom`,
- IFNULL( SUM( CASE WHEN a.avaliacao='Muito Bom ' THEN total END),0 ) AS `Muito Bom `,
- IFNULL( SUM( CASE WHEN a.avaliacao='Excelente' THEN total END),0 ) AS `Excelente`
- FROM
- (
- SELECT MONTH(s.data_avaliacao) data_avaliacao,
- CASE
- WHEN s.avaliacao = 1
- THEN 'Ruim'
- WHEN s.avaliacao = 2
- THEN 'Razoável'
- WHEN s.avaliacao = 3
- THEN 'Bom'
- WHEN s.avaliacao = 4
- THEN 'Muito Bom'
- WHEN s.avaliacao = 5
- THEN 'Excelente'
- END avaliacao,
- COUNT(s.avaliacao) total
- FROM satisfacao s
- WHERE DATE_FORMAT(s.data_avaliacao,'%Y-%m') BETWEEN '2019-04' AND '2019-07'
- GROUP BY s.avaliacao, DATE_FORMAT(s.data_avaliacao, '%m')
- ) a
- GROUP BY a.data_avaliacao, a.avaliacao
- data | Bom | Muito Bom | Excelente |
- "4" | "0" | "0" | "1" |
- "5" | "0" | "0" | "28" |
- "6" | "1" | "0" | "0" |
- "6" | "0" | "0" | "42" |
- "7" | "1" | "0" | "0" |
- "7" | "0" | "0" | "4" |
- "7" | "0" | "1" | "0" |
- data | Bom | Muito Bom | Excelente |
- "4" | "0" | "0" | "1" |
- "5" | "0" | "0" | "28" |
- "6" | "1" | "0" | "42" |
- "7" | "1" | "1" | "4" |
- BEGIN
- SET @_sqlNota = NULL;
- SET @_dtInicio = DATE_FORMAT(p_inicio, '%Y-%m');
- SET @_dtFim = DATE_FORMAT(p_fim, '%Y-%m');
- /*
- 1. Ruim
- 2. Razoável
- 3. Bom
- 4. Muito Bom
- 5. Excelente
- */
- SELECT GROUP_CONCAT(
- CONCAT( 'IFNULL( SUM( CASE WHEN a.avaliacao=''',a.avaliacao,''' THEN total END),0 ) AS `',a.avaliacao,'`' )
- )
- INTO @_sqlNota
- FROM (
- SELECT CASE
- WHEN s.avaliacao = 1
- THEN 'Ruim'
- WHEN s.avaliacao = 2
- THEN 'Razoável'
- WHEN s.avaliacao = 3
- THEN 'Bom'
- WHEN s.avaliacao = 4
- THEN 'Muito Bom '
- WHEN s.avaliacao = 5
- THEN 'Excelente'
- END avaliacao
- FROM satisfacao s
- WHERE DATE_FORMAT(s.data_avaliacao,'%Y-%m') BETWEEN @_dtInicio AND @_dtFim
- GROUP BY s.avaliacao
- ) a;
- SET @_sqlMeses = CONCAT(
- 'SELECT
- fc_nomeMes(MONTH(a.data_avaliacao)) mes ,',
- @_sqlNota,
- ' FROM
- (
- SELECT s.data_avaliacao,
- CASE
- WHEN s.avaliacao = 1
- THEN 'Ruim'
- WHEN s.avaliacao = 2
- THEN 'Razoável'
- WHEN s.avaliacao = 3
- THEN 'Bom'
- WHEN s.avaliacao = 4
- THEN 'Muito Bom'
- WHEN s.avaliacao = 5
- THEN 'Excelente'
- END avaliacao,
- COUNT(s.avaliacao) total
- FROM satisfacao s
- WHERE DATE_FORMAT(s.data_avaliacao,'%Y-%m') BETWEEN '',@_dtInicio,'' AND '',@_dtFim,''
- GROUP BY DATE_FORMAT(s.data_avaliacao, '%Y-%m'), s.avaliacao
- ) a
- GROUP BY a.data_avaliacao'
- );
- select @_sqlMeses;
- PREPARE stmt FROM @_sqlMeses;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement