Jump to content
Fórum Script Brasil
  • 0

Ajuda linhas x colunas


rico.bezerra
 Share

Question

Boa tarde!

 

Tenho a seguinte query:

 

SELECT 
      lel_relatorio.id IdRelatorio
     ,CAST(lel_relatorio.data_inclusao AS DATE) DataConsulta
  ,lel_lello_analise.id_lello_analise IdAnalise
,lel_relatorio.id_pessoa_score IdPessoaScore
,lel_lello_analise.id_recomendacao IdRecomendacao
,lel_relatorio.lello_locatario Locatario
,lel_relatorio.lello_fiador  Fiador
FROM 
    pla_faturamento pla_faturamento
        LEFT JOIN
    lel_relatorio lel_relatorio 
ON lel_relatorio.id_empresa = pla_faturamento.id_empresa
LEFT JOIN
lel_lello_analise lel_lello_analise 
ON lel_lello_analise.id_empresa = lel_relatorio.id_empresa
LEFT JOIN
pla_usuario pla_usuario 
ON pla_usuario.id_empresa = lel_lello_analise.id_empresa
WHERE pla_faturamento.id_empresa = 7
AND CAST(lel_relatorio.data_inclusao AS DATE) <> 'NULL'
ORDER BY
lel_relatorio.data_inclusao

Precisava que nessa query, na mesma linha apareça o locatário e o(s) respectivo(s) fiador(es).

 

Alguém pode ajudar?

 

Estou usando MySQL Workbench e a versão é 6.1

 

Grato desde já.

 

Abraços.

 

Ricardo.

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Boa tarde!

 

Tenho a seguinte query:

 

SELECT 
      lel_relatorio.id IdRelatorio
     ,CAST(lel_relatorio.data_inclusao AS DATE) DataConsulta
  ,lel_lello_analise.id_lello_analise IdAnalise
,lel_relatorio.id_pessoa_score IdPessoaScore
,lel_lello_analise.id_recomendacao IdRecomendacao
,lel_relatorio.lello_locatario Locatario
,lel_relatorio.lello_fiador  Fiador
FROM 
    pla_faturamento pla_faturamento
        LEFT JOIN
    lel_relatorio lel_relatorio 
ON lel_relatorio.id_empresa = pla_faturamento.id_empresa
LEFT JOIN
lel_lello_analise lel_lello_analise 
ON lel_lello_analise.id_empresa = lel_relatorio.id_empresa
LEFT JOIN
pla_usuario pla_usuario 
ON pla_usuario.id_empresa = lel_lello_analise.id_empresa
WHERE pla_faturamento.id_empresa = 7
AND CAST(lel_relatorio.data_inclusao AS DATE) <> 'NULL'
ORDER BY
lel_relatorio.data_inclusao

Precisava que nessa query, na mesma linha apareça o locatário e o(s) respectivo(s) fiador(es).

 

Alguém pode ajudar?

 

Estou usando MySQL Workbench e a versão é 6.1

 

Grato desde já.

 

Abraços.

 

Ricardo.

O result dessas colunas locatário e fiador são sempre 0 ou 1, não tem descritivo...ou seja, se locatário = 0 significa que não é locatário, se = 1 é locatário, o mesmo pra coluna fiador, se = 0 não é fiador e se = 1 é fiador, pois se eu tiver as 2 colunas lado a lado fica uma coisa imbecil, mas se eu consultar só uma por vez, faz sentido pra saber se determinado id é de um locatário ou de um fiador...

Teria que ser algo tipo:

Coluna: Locatario_Fiador

Result: locatário x - fiador a,b,c

            locatário y - fiador a,c

            locatário z - fiador b

Pelo que entendi, seria isso.

Ninguém pra dar uma ajuda? Por favor pessoal.

Link to comment
Share on other sites

  • 0

O result é assim:

 

 

id, analisado, data_inclusao, documento, excluido, lello_fiador, lello_locatario
'1', '0', '2015-02-20 18:23:56', '10897055000108', '0', '0', '0'
'2', '0', '2015-02-20 18:28:15', '22045870871', '0', '0', '0'
'3', '0', '2015-02-20 18:29:22', '05161804602', '0', '0', '0'
'4', '0', '2015-02-20 19:47:55', '91425131115', '0', '0', '0'
'5', '0', '2015-02-20 19:49:48', '91425131115', '0', '0', '1'
'6', '0', '2015-02-20 19:49:48', '80441718191', '0', '1', '0'
'7', '0', '2015-02-23 10:07:37', '05161804602', '0', '0', '0'
Link to comment
Share on other sites

  • 0

O result é assim:

 

 

id, analisado, data_inclusao, documento, excluido, lello_fiador, lello_locatario
'1', '0', '2015-02-20 18:23:56', '10897055000108', '0', '0', '0'
'2', '0', '2015-02-20 18:28:15', '22045870871', '0', '0', '0'
'3', '0', '2015-02-20 18:29:22', '05161804602', '0', '0', '0'
'4', '0', '2015-02-20 19:47:55', '91425131115', '0', '0', '0'
'5', '0', '2015-02-20 19:49:48', '91425131115', '0', '0', '1'
'6', '0', '2015-02-20 19:49:48', '80441718191', '0', '1', '0'
'7', '0', '2015-02-23 10:07:37', '05161804602', '0', '0', '0'

Se fosse SQL eu resolvia com o comando UNPIVOT, mas já tentei e vi que não funciona com MySQL, então não sei e nem achei nada equivalente pra MySQL mesmo, talvez duas sub-querys, não sei...não soube fazer pra aparecer da forma que preciso...nos joins, o campo de cruzamento das informações em "todas" as tabelas é o id_empresa...têm o campo documento também, pensei nele, mas não sei se ele repete, aqui na empresa ninguém quer ajudar...

 

Abs

Estrutura é essa, já que passei em outro site, não teria porque não passar aqui.

 

 Table: pla_faturamento 

Columns:

id_faturamento bigint(20) UN AI PK assunto varchar(255) codigo_cliente varchar(255) data_consulta datetime data_faturada datetime descricao varchar(255) modalidade varchar(255) numero_documento varchar(14) quantidade int(11) sistema varchar(255) tipo_documento int(11) id_empresa bigint(20)id_cheque_informacoes bigint(20) id_prospeccao bigint(20) id_proposta bigint(20) id_analise_fluxobigint(20) id_relatorio bigint(20) id_analise_varejo bigint(20) id_analise_seguro bigint(20) id_analisebigint(20) id_lello_relatorio

bigint(20) UN 

 

 

             Table: lel_lello_analise 

Columns:

id_lello_analise bigint(20) UN AI PK data_inclusao datetime encargos double excluido tinyint(1) garantia varchar(255) tipo_locacao varchar(255) tipo_operacao varchar(255) valor double id_empresa bigint(20)id_filial bigint(20) UN id_recomendacao bigint(20) alcada_inicial varchar(30) id_usuario_sol bigint(20)id_usuario bigint(20) id_usuario_editando bigint(20) 

 

 

             Table: lel_relatorio 

Columns:

id bigint(20) UN AI PK analisado tinyint(1) data_inclusao datetime documento varchar(14) excluido tinyint(1) lello_fiador tinyint(1) lello_locatario tinyint(1) nome_fonte_dados varchar(200) renda_faturament_info double id_analise_cpf bigint(20) id_cheque_informacoes bigint(20)id_comportamental_seg bigint(20) id_empresa bigint(20) id_empresa_restritivos bigint(20)id_faturamento_presumido bigint(20) id_filial bigint(20) UN id_lello_analise bigint(20) UNid_limite_credito bigint(20) id_tselocalvotacao bigint(20) id_recomendacao_analise bigint(20)id_relatorio_retorno bigint(20) id_renda_presumida_analise bigint(20) id_pessoa_restritivosbigint(20) id_pessoa_score bigint(20) id_telefone_endereco_instal bigint(20) id_telefone_publicobigint(20) UN ordem_blocos varchar(1500) id_tempo_rel_fornec bigint(20) UN id_referencia_negociobigint(20) UN id_credencial_sessao bigint(20) UN id_cad_rfb_pj bigint(20) UN id_cad_rfb_pfbigint(20) UN id_certneg_pgfn_pj bigint(20) UN id_regulaempfgts bigint(20) UN id_cad_sus_pfbigint(20) UN id_confef_pesq bigint(20) UN 

 

A tabela usuário eu tirei, nem estava usando.

 

Relacionamento é pelo id_empresa

Link to comment
Share on other sites

  • 0

Isso traz o que preciso:

SELECT CONCAT(CAST(lello_locatario AS CHAR),';',CAST(lello_fiador AS CHAR)) Locatario_Fiador
        FROM lel_relatorio                                     Locatario_Fiador
Locatario_Fiador
0;0
0;0
0;0
0;0
1;0
0;1
0;0

Mas seu coloco na query...ai critica que gera mais de uma linha:

SELECT 
     lel_relatorio.id                                            IdRelatorio
    ,CAST(lel_relatorio.data_inclusao AS DATETIME)                DataConsulta
     ,lel_lello_analise.id_lello_analise                            IdAnalise
    ,lel_relatorio.id_pessoa_score                                IdPessoaScore
    ,lel_lello_analise.id_recomendacao                            IdRecomendacao
    ,(SELECT CONCAT(CAST(lello_locatario AS CHAR),';',CAST(lello_fiador AS CHAR)) Locatario_Fiador
        FROM lel_relatorio)                                     Locatario_Fiador
FROM 
    pla_faturamento pla_faturamento
        LEFT JOIN
    lel_relatorio lel_relatorio 
            ON lel_relatorio.id_empresa = pla_faturamento.id_empresa
        LEFT JOIN
    lel_lello_analise lel_lello_analise 
            ON lel_lello_analise.id_empresa = lel_relatorio.id_empresa
        WHERE pla_faturamento.id_empresa = 7
    AND CAST(lel_relatorio.data_inclusao AS DATETIME) IS NOT NULL
AND lel_relatorio.id >=
                        (SELECT
                            (MAX(id) * 0.999)
                         FROM
                                lel_relatorio)
GROUP BY lel_relatorio.lello_locatario
ORDER BY
    lel_relatorio.data_inclusao
15:34:38	SELECT    lel_relatorio.id           IdRelatorio  ,CAST(lel_relatorio.data_inclusao AS DATETIME)    DataConsulta   ,lel_lello_analise.id_lello_analise       IdAnalise  ,lel_relatorio.id_pessoa_score        IdPessoaScore  ,lel_lello_analise.id_recomendacao       IdRecomendacao  ,(SELECT CONCAT(CAST(lello_locatario AS CHAR),';',CAST(lello_fiador AS CHAR)) Locatario_Fiador   FROM lel_relatorio)          Locatario_Fiador FROM      pla_faturamento pla_faturamento         LEFT JOIN     lel_relatorio lel_relatorio     ON lel_relatorio.id_empresa = pla_faturamento.id_empresa   LEFT JOIN  lel_lello_analise lel_lello_analise     ON lel_lello_analise.id_empresa = lel_relatorio.id_empresa   WHERE pla_faturamento.id_empresa = 7  AND CAST(lel_relatorio.data_inclusao AS DATETIME) IS NOT NULL AND lel_relatorio.id >=       (SELECT        (MAX(id) * 0.999)        FROM         lel_relatorio) GROUP BY lel_relatorio.lello_locatario ORDER BY  lel_relatorio.data_inclusao LIMIT 0, 50000	Error Code: 1242. Subquery returns more than 1 row	5.148 sec

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...