Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda linhas x colunas


rico.bezerra

Pergunta

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 para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...