Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ricardo Santos Bezerra

linhas x colunas

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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.

 

 

 

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quem é locatário e de quem? Quem é fiador e de quem? É preciso ter um relacionamento. Veja nos outros JOIN já criados, o relacionamento foi feito com a empresa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, se fosse SQL Server 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 subquerys, 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.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, se fosse SQL Server 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 subquerys, 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.

 

Abs.

Têm o campo documento também, pensei nele, mas não sei se ele repete, aqui ninguém ajuda...rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

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_fluxo bigint(20) id_relatorio bigint(20) id_analise_varejo bigint(20) id_analise_seguro bigint(20) id_analise bigint(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) UN id_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_restritivos bigint(20) id_pessoa_score bigint(20) id_telefone_endereco_instal bigint(20) id_telefone_publico bigint(20) UN ordem_blocos varchar(1500) id_tempo_rel_fornec bigint(20) UN id_referencia_negocio bigint(20) UN id_credencial_sessao bigint(20) UN id_cad_rfb_pj bigint(20) UN id_cad_rfb_pf bigint(20) UN id_certneg_pgfn_pj bigint(20) UN id_regulaempfgts bigint(20) UN id_cad_sus_pf bigint(20) UN id_confef_pesq bigint(20) UN

 

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

 

Relacionamento é pelo id_empresa

Compartilhar este post


Link para o post
Compartilhar em outros sites

O desc das tabelas ainda está confuso.

 

Aparentemente o problema é simples , basta fazer o join das tabelas que tem os códigos com as que tem o nome.

 

Não sei se um locatário pode ter mais de um fiador (ou nenhum)

 

Sendo nenhum seria preciso um outer join para que os locatários saiam

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu sempre terei um locatário e nenhum, um ou mais fiador(es), mas são duas colunas da mesma tabela, precisava que mostre locatário 1 - fiador nada, locatário 2 - fiador 1, locatário 203 - fiador 1,2,3, locatário 209 - fiador 10,11...e assim por diante..num tipo de pivot, locatário é a coluna e fiadores as linhas....entendeu?

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok , pesquise por

 

OUTER JOIN (Join com 0 ou mais links)

JOIN

GROUP_CONCAT (PARA FAZER LISTAS EM UMA LINHA)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo, fiz assim:

 

 

(SELECT DISTINCT lello_fiador, GROUP_CONCAT(DISTINCT lello_locatario ORDER BY lello_locatario SEPARATOR '-') FROM lel_relatorio GROUP BY lello_fiador) Locatario_Fiador

Porém diz que existe mais de uma linha para os registros... :(

 

 

 

????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que o distinct é desnecessário no group_concat

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa sim, se faço sem distinct aparecem infinitos fiadores com código 0, agora com distinct aparem 1 alguns 2 no máximo 3 que são valores mais plausíveis....porém, roda esse select sozinho, se eu coloco como sub-query dá crítica dizendo que retorna mais de uma coluna, mesmo com distinct e group by

Compartilhar este post


Link para o post
Compartilhar em outros sites


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_fluxo BIGINT(20)

id_relatorio BIGINT(20)

id_analise_varejo BIGINT(20)

id_analise_seguro BIGINT(20)

id_analise BIGINT(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) UN

id_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_restritivos BIGINT(20)

id_pessoa_score BIGINT(20)

id_telefone_endereco_instal BIGINT(20)

id_telefone_publico BIGINT(20) UN

ordem_blocos VARCHAR(1500)

id_tempo_rel_fornec BIGINT(20) UN

id_referencia_negocio BIGINT(20) UN

id_credencial_sessao BIGINT(20) UN

id_cad_rfb_pj BIGINT(20) UN

id_cad_rfb_pf BIGINT(20) UN

id_certneg_pgfn_pj BIGINT(20)

un id_regulaempfgts BIGINT(20)

un id_cad_sus_pf BIGINT(20) UN

id_confef_pesq BIGINT(20) UN

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.