Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Ajuda em MYSQL


jpsilva7

Question

olá pessoal estou precisando de ajuda em mysql, meu problema é o seguinte eu preciso fazer uma string asim

"['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']" substituindo os zeros pela quantidade naquele mes, e filtrado por estados por exemplo...

se tiver registros em fev e março no estado rs

eu precisaria forma nome = rio grande do sul, "['0', '2', '3', '0', '0', '0', '0', '0', '0', '0', '0', '0']" por ex.. claro que essa string ia ser criada via programação

com essa query aki

SELECT m.nome, MONTH( v.hora_marcada ) AS mes, count( v.codigo ) AS quant

FROM intra_pedidos v

INNER JOIN estado m ON v.cod_uf = m.codigo

GROUP BY m.nome,MONTH( v.hora_marcada )

ORDER BY 1,2

LIMIT 0 , 30

eu até conto quantos registros tem por mes mas repete em varios registros 1 a cada mes que tiver...

alguém sabe como fazer em uma linha fazendo comparações no sql para ficar algo parecido nome soma_mes1, soma_mes2,

ou até mesmo fazer com 2 query, porque desse jeito que fiz eu teria que fazer muitas linhas no codigo comparar mes estado toda hora pra formar a string isso tudo em cada estado daria muitas linhas de codigos

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

tentei com essa query

select m.nome,

sum(case when mes = 1 then quant else 0 end) AS janeiro,

sum(case when mes = 2 then quant else 0 end) AS fevereiro,

sum(case when mes = 12 then quant else 0 end) AS dezembro

from

(SELECT m.nome, MONTH( v.hora_marcada ) AS mes, count( v.codigo ) AS quant

FROM intra_pedidos v

INNER JOIN estado m ON v.cod_uf = m.codigo

GROUP BY m.nome,MONTH( v.hora_marcada ))

ORDER BY 1,2

LIMIT 0 , 30

mas me da o erro

#1248 - Every derived table must have its own alias

Link to comment
Share on other sites

  • 0
# 1248 - Cada tabela derivada deve ter seu próprio alias

o alias é o nome que voce dá a sua tabela

abraço

pois é eu consegui

ficou asim, só da recuperando 1 registro.. ao envez de listar de todos estados ta listando de 1 estado só

select nome,

sum(case when mes = 1 then quant else 0 end) AS janeiro,

sum(case when mes = 2 then quant else 0 end) AS fevereiro,

sum(case when mes = 3 then quant else 0 end) AS marco,

sum(case when mes = 4 then quant else 0 end) AS abril,

sum(case when mes = 5 then quant else 0 end) AS maio,

sum(case when mes = 6 then quant else 0 end) AS junho,

sum(case when mes = 7 then quant else 0 end) AS julho,

sum(case when mes = 8 then quant else 0 end) AS agosto,

sum(case when mes = 9 then quant else 0 end) AS setembro,

sum(case when mes = 10 then quant else 0 end) AS outubro,

sum(case when mes = 11 then quant else 0 end) AS novembro,

sum(case when mes = 12 then quant else 0 end) AS dezembro

from

(SELECT m.nome, MONTH( v.hora_marcada ) AS mes, count( v.codigo ) AS quant

FROM intra_pedidos v

INNER JOIN estado m ON v.cod_uf = m.codigo

GROUP BY m.nome,MONTH( v.hora_marcada )) VIRTUAL

ORDER BY 1,2

LIMIT 0 , 30

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...