Jump to content
Finterman

Visualização Pivot

Recommended Posts

Preciso de ajuda no seguinte cenário:

 

SELECT * from saldo_cartao

 

Nome    mes    saldo 

Nome1   jan      10

Nome2  jan      15

Nome1  fev       20

Nome2  fev      10

 

Qual SELECT devo usar para obter o seguinte resultado?

 

Nome    jan   fev

Nome1    10    20

Nome2   15     10

 

Share this post


Link to post
Share on other sites

Existe o comando PIVOT e também uma solução via CASE.

 

Vide

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By jdlucena
      SELECT datacc, horacc FROM R070ACC WITH (NOLOCK) WHERE numcad = '2676' AND DATACC between ('2018-16-04') and ('2018-15-05') and oriacc = 'E'  
      Na primeira coluna aparece o dia do mês repetido 4x, com registros diferentes na segunda coluna referente a essa data.  (ANEXO 01)
       
      Como faço para ficar na primeira coluna o dia e criar 4 colunas para os registros referente a esse mesmo dia?
       
      exemplo:
      DATA                         REG1                         REG2                         REG3                         REG4
      2018-04-16            723                             425                            783                             1040
      2018-04-17            733                             793                            1075                           423
      ...

      DATA REG1 REG2 REG3 REG4 2018-04-16 723 425 783 1040 2018-04-17 733 793 1075 423 ...  
    • By rhenan silverio
      Como faço pra integrar o Pivot nesse código do jqxGrid
       
       
      <!DOCTYPE html> <html lang="en"> <head> <title id='Description'>This example illustrates the Grid filtering feature. Move the mouse cursor over a column header and click the dropdown button to open the filtering menu. </title> <meta name="description" content="jQuery Grid Filtering of Data" /> <link rel="stylesheet" href="jqwidgets/jqwidgets/styles/jqx.base.css" type="text/css" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" /> <script type="text/javascript" src="jqwidgets/scripts/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxlistbox.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxdropdownlist.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxmenu.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxgrid.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxgrid.filter.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxgrid.sort.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxpanel.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/globalization/globalize.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxcalendar.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxdatetimeinput.js"></script> <script type="text/javascript" src="jqwidgets/jqwidgets/jqxcheckbox.js"></script> <script type="text/javascript" src="jqwidgets/scripts/demos.js"></script> <script type="text/javascript" src="generatedata.js"></script> <script type="text/javascript"> $(document).ready(function () { var source = { datatype: 'json', datafields: [ { name: 'responsavel_data_conhec', type: 'data'}, { name: 'data_registro', type: 'data' }, { name: 'tipo_carga', type: 'string' }, { name: 'teus', type: 'number'}, { name: 'nmconsignatario', type: 'string' }, { name: 'nmportoorigem', type: 'string' }, { name: 'total_fcl', type: 'number'}, { name: 'txmercadoria', type: 'string'}, {name: 'txshipper', type: 'string'}, {name: 'nmembarcacao', type: 'string'} ], id: 'id', url: 'http://comex.io/request/report/jsonimport', async: false }; var addfilter = function () { var filtergroup = new $.jqx.filter(); var filtervalue = ''; var filtercondition = ''; var filter1 = filtergroup.createfilter('stringfilter', filtervalue, filtercondition); filtervalue = ''; filtercondition = 'starts_with'; var filter2 = filtergroup.createfilter('stringfilter', filtervalue, filtercondition); // add the filters. $("#grid").jqxGrid('addfilter', 'data_registro', filtergroup); // apply the filters. $("#grid").jqxGrid('applyfilters'); } var adapter = new $.jqx.dataAdapter(source); $("#grid").jqxGrid( { width: getWidth('Grid'), source: adapter, filterable: true, sortable: false, ready: function () { addfilter(); }, autoshowfiltericon: true, columns: [ {text: 'Responsavel data conhecimento', datafield: 'responsavel_data_conhec', width: 160}, { text: 'Teus', datafield: 'teus', width: 160 }, { text: 'tipo de carga', datafield: 'tipo_carga', width: 160 }, { text: 'Total FCL', datafield: 'total_fcl', width: 170 }, { text: 'Data de Navegação', datafield: 'data_registro', filtertype: 'date', width: 200, cellsformat: 'dd-MMMM-yyyy' }, { text: 'Consignatario', datafield: 'nmconsignatario', width: 200, cellsalign: 'right' }, { text: 'Porto de Origem', datafield: 'nmportoorigem', cellsalign: 'right', cellsformat: 'c2' }, { text: 'Mercadoria', datafield: 'txmercadoria', widht: 120, cellsalign: 'right', cellsformat: 'c2'}, { text: 'Navio', datafield: 'txshipper', widht: 100, cellsalign: 'right', cellsformat: 'c2'}, { text: 'Nome da Embarcação', datafield: 'nmembarcacao', widht: 100, cellsalign: 'right'} ] }); $('#events').jqxPanel({ width: 300, height: 80}); $("#grid").on("filter", function (event) { $("#events").jqxPanel('clearcontent'); var filterinfo = $("#grid").jqxGrid('getfilterinformation'); var eventData = "Triggered 'filter' event"; for (i = 0; i < filterinfo.length; i++) { var eventData = "Filter Column: " + filterinfo[i].filtercolumntext; $('#events').jqxPanel('prepend', '<div style="margin-top: 5px;">' + eventData + '</div>'); } }); $('#clearfilteringbutton').jqxButton({ height: 25}); $('#filterbackground').jqxCheckBox({ checked: true, height: 25}); $('#filtericons').jqxCheckBox({ checked: false, height: 25}); // clear the filtering. $('#clearfilteringbutton').click(function () { $("#grid").jqxGrid('clearfilters'); }); // show/hide filter background $('#filterbackground').on('change', function (event) { $("#grid").jqxGrid({ showfiltercolumnbackground: event.args.checked }); }); // show/hide filter icons $('#filtericons').on('change', function (event) { $("#grid").jqxGrid({ autoshowfiltericon: !event.args.checked }); }); }); </script> </head> <body class='default'> <div id="grid"> </div> <div id="eventslog" style="margin-top: 30px;"> <div style="width: 200px; float: left; margin-right: 10px;"> <input value="Remove Filter" id="clearfilteringbutton" type="button" /> <div style="margin-top: 10px;" id='filterbackground'>Filtar por Background</div> <div style="margin-top: 10px;" id='filtericons'>Mostrar todos os Icones de Filtro</div> </div> <div style="float: left;"> Evento de Log <div style="border: none;" id="events"> </div> </div> </div> </body> </html>  
    • By rhenan silverio
      $(document).ready(function () { var datas = new Array(); $.getJSON( "http://comex.io/request/report/jsonimport", function( data ) { $.each( data, function( key, obj ) { var row = {}; row['data_registro'] = obj.data_registro; row['tipo_carga'] = obj.tipo_carga; row['teus'] = obj.teus; row['nmconsignatario'] = obj.nmconsignatario; row['nmportoorigem'] = obj.nmportoorigem; row['nmportodestino'] = obj.nmportodestino; row['total_fcl'] = obj.total_fcl; datas[key] = row; }); }); console.log(datas); var source = { //localdata: datas, datatype: "json", datafields: [ { name: 'data_registro', type: 'string' }, { name: 'tipo_carga', type: 'string' }, { name: 'teus', type: 'string'}, { name: 'nmconsignatario', type: 'string' }, { name: 'nmportoorigem', type: 'string' }, { name: 'nmportodestino', type: 'string'}, { name: 'total_fcl', type: 'string'} ] }; // console.log(source); var dataAdapter = new $.jqx.dataAdapter(source); dataAdapter.dataBind(); // create a pivot data source from the dataAdapter var pivotDataSource = new $.jqx.pivot( dataAdapter, { pivotValuesOnRows: false, rows: [{ dataField: '', width: 190 }], columns: [], values: [ { dataField: 'data_registro', width: 200, 'function': 'max', text: 'cells left alignment', formatSettings: { align: 'left', prefix: '', decimalPlaces: 2 } }, { dataField: 'tipo_carga', width: 200, 'function': 'max', text: 'cells center alignment', formatSettings: { align: 'center', prefix: '', decimalPlaces: 2 } }, { dataField: 'nmconsignatario', width: 200, 'function': 'average', text: 'cells right alignment', formatSettings: { align: 'right', prefix: '', decimalPlaces: 2 } }, { dataField: 'nmportoorigem', width: 200, 'function': 'average', text: 'cells right alignment', formatSettings: { align: 'right', prefix: '', decimalPlaces: 2 } }, { dataField: 'nmportodestino', width: 200, 'function': 'average', text: 'cells right alignment', formatSettings: { align: 'right', prefix: '', decimalPlaces: 2 } }, { dataField: 'total_fcl', width: 200, 'function': 'average', text: 'cells right alignment', formatSettings: { align: 'right', prefix: '', decimalPlaces: 2 } } ] }); // console.log(source); $('#divPivotGrid').jqxPivotGrid( { source: pivotDataSource, treeStyleRows: true, autoResize: false, multipleSelectionEnabled: true }); }); Criei esse pivot grid, mas to com problemas, porque ele só aparece uma parte do grid e não me dá ele com os resultados alguém pode me dar um Help?? 
    • By xRicardox
      Galera, bom dia.
       
      Estou com dificuldade para unir o resultado de um Join entre duas tabelas de forma que os dados de uma das tabelas passe a integrar a tupla referente a ele. Vou exemplificar com um banco teste.
       
      Tenho duas tabelas. A primeira é "Chamados" e a segunda "horario_pendencia". Como em um chamado podemos ter várias pendenciar, e assim temos vários horários de inicio e fim da atividade referente a cada pendencia, tive que criar a tabela de Horario_pencencia pois não teria como incrementar uma campo a mais na tabela de chamados toda vez que abrisse uma pendencia(pois não temos um número fixo de pendencia por chamado, caso seja possível criar uma tabela com campo variável me avisem kkk ). Sendo assim tenho um relacionamento entre a tabela de Chamado e Horario_pendencia.
       
      Tabelas Chamados
       
       
      idChamados Num_Serie Horario_Abertura Observacao 1 HHH00000 30/06/2016 Atolamento 2 HHH3245 30/06/2016 Erro ao Imprimir  
       
      Tabela Horario_Pendencia
       
      idHorario_Pendencia Horario_Pend_Inicio Horario_Pend_Encerramento Id_Chamado_REF 1 01/07/2016 02/07/2016 1 2 10/07/2016 11/07/2016 1 3 12/07/2016 13/07/2016 1 4 01/07/2016 01/07/2016 2 5 06/07/2016 06/07/2016 2 6 15/07/2016 17/07/2016 2  
      Eu preciso trazer em apenas uma linha o chamado e seus horários de pendencia, ficando da seguinte forma:
       
      idChamados Num_Serie Horario_Abertura Observacao Horario_Pend_Inicio Horario_Pend_Encerramento Horario_Pend_Inicio Horario_Pend_Encerramento Horario_Pend_Inicio Horario_Pend_Encerramento 1 HHH00000 30/06/2016 Atolamento 01/07/2016 02/07/2016 10/07/2016 11/07/2016 12/07/2016 13/07/2016 2 HHH3245 30/06/2016 Erro ao Imprimir 01/07/2016 01/07/2016 06/07/2016 06/07/2016 15/07/2016 17/07/2016  
      Estava utilizando Join porem não consegui unir os resultados das tabelas, onde a tabela Horario_Pendencia passe a assumir a linha referente ao ID do Chamado Referenciado (ID_Chamado_REF). Andei procurando sobre algo e encontrei o comando PIVOT mas não soube utilizar.
       
      Alguém poderia me dar um norte para solucionar este relatório?
       
       
       
       
    • By nanicesar
      Boa tarde,
       
      após dias tentando resolver a questão e depois de buscar inúmeras soluções aqui no fórum e na internet em geral acabei decidindo pedir ajuda.
      Tenho que fazer uma listagem em meu banco relacionando em colunas uma informação que consigo facilmente obter em linhas.
      Uso a seguinte sentença:
      SELECT PPESSOA.NOME, P.NOME AS PAI, P.EMAIL AS EMAILPAI, M.NOME AS MAE, M.EMAIL AS EMAILMAE FROM SALUNO, SMATRICPL, SHABILITACAOFILIAL, SCURSO, SPLETIVO, SSTATUS, PPESSOA, SPESSOA LEFT OUTER JOIN PPESSOA P ON SPESSOA.CODPESSOAPAI = P.CODIGO LEFT OUTER JOIN PPESSOA M ON SPESSOA.CODPESSOAMAE = M.CODIGO WHERE SALUNO.RA = SMATRICPL.RA AND SALUNO.CODPESSOA = SPESSOA.CODIGO AND SPESSOA.CODIGO = PPESSOA.CODIGO AND SMATRICPL.IDPERLET = SPLETIVO.IDPERLET AND SMATRICPL.CODSTATUS = SSTATUS.CODSTATUS AND SMATRICPL.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL and shabilitacaofilial.codcurso = scurso.codcurso and shabilitacaofilial.codfilial = SPLETIVO.CODFILIAL E ela me resulta o nome do aluno, nome do pai, email do pai, nome da mãe e email da mãe. A questão é a seguinte, caso um pai possua 2 filhos, eles saem em linhas, por exemplo: ALAN M***** | PAULO A***** | A*****@*****.COM | S***** GONÇALVES | S*****@IG.COM.BR LUIZA M***** | PAULO A***** | A*****@*****.COM | S***** GONÇALVES | S*****@IG.COM.BR  
      Gostaria que fosse feito um agrupamento usando algum campo em comum (nome do pai, por exemplo) e os filhos saíssem em colunas, dessa forma:
       
      ALAN M***** | LUIZA M***** | PAULO A***** | A*****@*****.COM | S***** GONÇALVES | S*****@IG.COM.BR
       
      Um dos problemas é que os pais não possuem número fixo de filhos e isso está me deixando louco sobre como poderia usar o PIVOT ou alguma outra solução para resolver.
      Espero que não tenha ficado muito complicado para entender, qualquer coisa favor perguntarem, espero que alguém possa me ajudar com alguma solução. Obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.