CONSULTA SQL LINHAS EM COLUNAS
Pessoal.
Tenho duas tabelas , tecnicos e servicos.
Na tabela tecnicos basicamente é o id(int) e mais um campo chamado tecnico(varchar).
Na tabela servicos tenho um campo chamado idTecnico(int) e outro campo chamado atendimento(date)
Eu preciso fazer uma consulta que me mostre a soma de atendimentos por dia para cada tecnico.
Seria mais ou menos isso abaixo.
Tecnico Segunda Terca Quarta Quinta Sexta
Jose 1 6 2 0 4
Joao 8 0 2 3 5
Pesquisei, pela internet e fiz essa consulta abaixo, que me traz um resultado totalmente errado.
Um monte de atendimentos para os tecnicos.
Obrigado desde já a todos.
Tenho duas tabelas , tecnicos e servicos.
Na tabela tecnicos basicamente é o id(int) e mais um campo chamado tecnico(varchar).
Na tabela servicos tenho um campo chamado idTecnico(int) e outro campo chamado atendimento(date)
Eu preciso fazer uma consulta que me mostre a soma de atendimentos por dia para cada tecnico.
Seria mais ou menos isso abaixo.
Tecnico Segunda Terca Quarta Quinta Sexta
Jose 1 6 2 0 4
Joao 8 0 2 3 5
Pesquisei, pela internet e fiz essa consulta abaixo, que me traz um resultado totalmente errado.
Um monte de atendimentos para os tecnicos.
[Ô]select t.tecnico,[Ô] &
[Ô] SUM(IF(day(atendimento)=01,s.id,[ô]0[ô])) AS [ô]Segunda[ô],[Ô] &
[Ô] SUM(IF(day(atendimento)=02,s.id,[ô]0[ô])) AS [ô]Terca[ô],[Ô] &
[Ô] SUM(IF(day(atendimento)=03,s.id,[ô]0[ô])) AS [ô]Quarta[ô],[Ô] &
[Ô] SUM(IF(day(atendimento)=04,s.id,[ô]0[ô])) AS [ô]Quinta[ô],[Ô] &
[Ô] SUM(IF(day(atendimento)=05,s.id,[ô]0[ô])) AS [ô]Sexta[ô][Ô] &
[Ô] FROM tecnicos t inner join servicos s on t.id=s.idtecnico and [Ô] +
[Ô] s.data between [ô][Ô] & Format(dtPicker1.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(dtPicker2.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] group by s.idTecnico[Ô], Conexao)
Obrigado desde já a todos.
Se for SQL Server, pode usar o Pivot:
http://www.devmedia.com.br/pivot-no-sql-server-invertendo-linhas-e-colunas-em-um-exemplo-real/28318
http://sqlfromhell.wordpress.com/2013/08/01/transformando-linhas-em-colunas-sem-pivot/
http://debulhado.wordpress.com/2012/07/29/pivot-no-sql-server-parte-ii/
http://www.devmedia.com.br/pivot-no-sql-server-invertendo-linhas-e-colunas-em-um-exemplo-real/28318
http://sqlfromhell.wordpress.com/2013/08/01/transformando-linhas-em-colunas-sem-pivot/
http://debulhado.wordpress.com/2012/07/29/pivot-no-sql-server-parte-ii/
Eu fiz este exemplo aqui, mas com DataSet. Veja se te ajuda e faça as adaptações necessárias.
Primeiro: o programa não trabalha com DateTimePicker. O programa pega todos os dias da semana atual. Por exemplo: Como estamos na semana entre os dias 03 e 07, o programa vai retornar todos os dias entre eles, inclusive 3 e 7 (3, 4, 5, 6 e 7). Se estivéssemos na semana do dia 12, o programa retornaria 10, 11, 12, 13, 14 e 15. OBS: não retorna os dias referentes aos Domingos e sábados;
Segundo: O programa ficou um pouco extenso porque eu não fiz as contas no SQL e sim no código do programa, mas veja se consegue aproveitar alguma coisa;
Terceiro: Estou trabalhando com um ListView;
Quarto: Estou utilizando Access e OleDb. Você deve estar usando SqlExpress. Se o código lhe for útil, faça as adaptações.
Obrigado, Carinhena e Pegudo.
Pegudo farei os testes e entro em contato.
A princÃpio fico grato por sua gentileza.
Ps. Banco utilizado é o MYSQL
Pegudo farei os testes e entro em contato.
A princÃpio fico grato por sua gentileza.
Ps. Banco utilizado é o MYSQL
Tópico encerrado , respostas não são mais permitidas