Jump to content
Sign in to follow this  
rtfacincani

Consulta com sub-consultas e agregações

Recommended Posts

Prezados, necessito gerar uma consulta ao banco de dados Oracle e estou enfrentando dificuldades em retornar valores. Abaixo vou explicar como as tabelas estão montadas

 

Tab1:NotaFiscal

codnota,datanota,codveiculo,datasaida,datachegada

 

Tab2:Combustivel

codveiculo,dataabastecimento,kmpercorrido,qtdlitros,medialistros

 

O que preciso? Preciso saber dentro do período da NotaFiscal, qual o veículo que entre a datasaida e datachegada, foram abastecidos, e qual o total de kilometros percorridos entre as datas de saida e chegada da notafiscal.

 

A saída ficaria assim:

 

codnota,datanota,codveiculo,totalkmpercorrido,totalqtdlitros,medialitros.

 

Tentei algo assim, mas não deu certo estou tendo esta dificuldade:

 

select n.codnota,n.datanota,n.codveiculo,sum(c.totalkmpercorrido) as totalkmpercorrido,sum(c.totalqtdlitros) as totalqtdlitros,avg(c.medialitros) as medialitros from notafiscal n inner join combustivel c on n.codveiculo = c.codveiculo

where c.dataabastecimento between n.datasaida and n.datachegada

group by codnota,datanota,codveiculo

 

Porém não estou conseguindo retornar os valores, principalmente por não ter em combustível o motivo para o abastecimento, visto que pode ser que seja uma viagem e entre a datasaida e datachegada pode existir vários abastecimentos e a única coisa que tenho para ligar é o código do veículo e as datas de saída e chegada emitida pela nota.

 

Será que alguém poderia me auxiliar com essa consulta?

 

 

 

Share this post


Link to post
Share on other sites

O que há de errado com o seu sql !?

 

 

Parece-me um problema de modelo , a NF se refere a compra do combustivel ou a ao frete ?

 

O kmpercorridido se refere ao abastecimento em questao ou ao anterior ?

 

O sql parece 'certo' , o modelo nem tanto.

Share this post


Link to post
Share on other sites

O que há de errado com o seu sql !?

 

 

Parece-me um problema de modelo , a NF se refere a compra do combustivel ou a ao frete ?

 

O kmpercorridido se refere ao abastecimento em questao ou ao anterior ?

 

O sql parece 'certo' , o modelo nem tanto.

Motta, obrigado por responder, mas a consulta em questão é referente a um modelo onde é emitida uma nota fiscal de compra ou serviço, e o abastecimento é referente ao abastecimento de caminhões que farão o serviço.

 

Quanto ao km percorrido se refere ao abastecimento em uma data específica que pode ou não estar entre a data de saida e chegada, pois o caminhão faz diversos abastecimentos e pode não ter a ver com a nota em questão, por isso que estou atrelando ao período da saida e chegada da nota, qualquer abastecimento entre estas datas, subentende-se que pode estar atrelado a nota em questão, porém não é garantido.

 

uma coisa que acontece é que ao incluir o número da nota, na pesquisa, ele acaba fazendo um plano cartesiano e colocando todas as notas mesmo não estando envolvidos.

 

Não sei se errei ao montar a estrutura, mas faço uma busca em uma terceira tabela que é uma tabela de ligação, onde contém o numero da nota, o código do veículo e a ordem de serviço, então faço a ligação apenas do código do veículo que é a única coisa que ambas as tabelas tem em comum, visto que o número da nota não está envolvida.

 

Esta tabela de ligação é composta pelos seguintes campos:

 

tabela 3:

 

codordemserviço, codveiculo, codnota

 

tabela 4

codveiculo, placa,modelo, chassi

 

levando em consideração que a tabela de veículo tem a placa do veículo e o seu código e a tabela de abastecimento tem a placa do veículo, mas não o código do veículo, faço uso desta terceira tabela para descobrir o código do veículo para montar a estrutura.

 

Não passei essa informação pois achei que o problema não estaria ai, e sim no group by ou sum.

 

Mas a estrutura real é assim. são quatro tabelas onde eu tenho a tabela da nota fiscal, a tabela de abastecimento com a placa do veículo, a tabela de veículo que tem o código do veiculo e a sua placa e a tabela de ligação que tem o numero da nota, o código do veículo e o numero da ordem de atendimento, porém em abastecimento só tenho a placa do veículo.

 

A questão da kilometragem e a quantidade de litros, toda a vez que o caminhão faz o abastecimento é planilhado a informação e posteriormente lançado no sistema. Mas tenho que descobrir quanto que uma nota "paga" para abastecer o caminhão para realizar o seu percurso, por isso é que tenho que fazer essa ligação, mas infelizmente não tem como pegar na planilha do lançamento de abastecimento qual foi a nota que aquele caminhão naquela data está atendendo.

 

Peço a sua ajuda a fim de tentar me ajudar nesta descoberta.

 

Atenciosamente,

 

Ricardo

Share this post


Link to post
Share on other sites

Capture mais um dado ,

 

Codnota

Kminicialnf

Kmfinalnf

 

Com isto ao menos se tem o quanto um veiculo rodou por nf

 

 

Uma pergunta , mais de um veiculo pode atender uma NF ?

Share this post


Link to post
Share on other sites

Capture mais um dado ,

 

Codnota

Kminicialnf

Kmfinalnf

 

Com isto ao menos se tem o quanto um veiculo rodou por nf

 

 

Uma pergunta , mais de um veiculo pode atender uma NF ?

Sim, uma nota pode ter vários veículos atendendo. Por isso que uma nota tem ordem de serviço que é a ordem para que um caminhão vá pegar a carga em outro lugar. As informações de KMInicial, e KMFinal, já são calculados e lançados no sistema pelo KM Percorrido no abastecimento, por isso não preciso informar

Share this post


Link to post
Share on other sites

Tá mas você não tem em combustivel

 

Imagino algo do tipo , dia 1 o caminhão é abastecido,

 

codveiculo dataabastecimento kmpercorrido qtdlitros medialistros

1 1/x/16 100 80 xx..xx

mesmo sem OS

 

no dia 2 ele faz a OS 1,2,e 3

ainda com combustivel ele faz a OS 4 , mas faz um reabastecimento neste dia

seria algo do tipo

OS kminicial kmfinal

1 100 102

2 102 110

3 110 117

...

 

Na minha opinião seria mais correto ter os km inicial e final de cada OS , além das do abastecimento

com isto seria possível saber que o veiculo x rodou y kms para a OS z

 

Calculando o custo médio deste veiculo (preço médio * litros / km rodados) seria

possivel calcular o custo do combustível na OS

 

Senão não se tem a informação do "custo de combustivel da OS" , pois numa OS o caminhao pode ir no bairro

na outra no outro lado da cidade

 

Espero ter ajudado

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
Sign in to follow this  

  • Similar Content

    • By gilsondsouza10@gmail.com
      select nom_administradora, nome_sucursal, nome_inspetoria, num_contrato_editado, nome_entidade, nome_empresa, dt_vencimento_order, dt_emissao, dt_vencimento, dt_baixa, dt_registro_baixa, dt_cancelamento, txt_nosso_numero, txt_nosso_numero_banco, num_fatura, nom_tipo_ciclo, nome_tipo_cobranca, mes_ano_ref, ind_tipo_baixa, nome_tipo_baixa, val_fatura, val_a_pagar, val_pago, val_desconto, val_saldo, nom_arquivo, cod_banco, ind_estado_cobranca, situacao, forma_baixa, num_agencia, impostos, diferenca, qtd_dias_atraso, num_cgc, venc_alterado, ins_encargos, nome_usu, celula, ind_tipo_produto, tipo_empresa, nome_tipo_empresa, segmento, cedente, dt_prorrogacao, contrato_mae, num_nota_fiscal, status_contrato, data_status, nom_cancelamento, cod_ts, ind_apos_dem, ind_acao_jud, num_operadora_ans, nom_operadora, cod_plano_medico, nome_plano_medico, cod_plano_dental, nome_plano_dental, Val_medico, Val_outros, val_dental, val_taxas, val_mensalidade_associativa, Val_net_medico, val_net_dental, cod_grupo_empresa, nome_grupo_empresa, nvl(val_medico,0) - nvl(val_net_medico,0) val_over_medico, nvl(val_dental,0) - nvl(val_net_dental,0) val_over_dental, nvl(val_medico,0) - nvl(val_net_medico,0) + (nvl(val_dental,0) - nvl(val_net+ 1_dental,0)) val_over_total, endereco, telefone, acao_judicial, dt_ini_vigencia, data_inclusao, num_cpf, dia_vencimento, email, nome_corretor, regiao, num_contrato_operadora, data_nascimento, idade, Marca_otica_Medico, marca_otica_dental, data_reativacao, motivo_exclusao, dia_vigencia, nom_empresa_cartao from ( select /*rec_acompanhamento_cobranca.monta_query "principal"*/ + op.nom_operadora nom_administradora, + su.nome_sucursal, + ip.nome_inspetoria, + ce.num_contrato_editado, + fa.nome_cliente nome_entidade, + es.nome_entidade nome_empresa, + nvl(co.dt_vencimento_orig,co.dt_vencimento) dt_vencimento_order,+ 1 to_char(co.dt_emissao, 'dd/MM/rrrr') dt_emissao, + 1 to_char(co.dt_vencimento, 'dd/MM/rrrr') dt_vencimento, + 1 to_char(co.dt_baixa, 'dd/MM/rrrr') dt_baixa, + 1 to_char(co.dt_registro_baixa, 'dd/MM/rrrr') dt_registro_baixa+ 1, to_char(co.dt_cancelamento, 'dd/MM/rrrr') dt_cancelamento, + 1 co.txt_nosso_numero, + co.txt_nosso_numero_banco, + fa.num_fatura, + tc.nom_tipo_ciclo, + to_char(cf.mes_ano_ref, 'mm/rrrr') mes_ano_ref, + 1 tcob.nome_tipo_cobranca, + co.ind_tipo_baixa, + tb.nome_tipo_baixa, + fa.val_fatura, + nvl(co.val_a_pagar, 0) val_a_pagar, + nvl(co.val_pago, 0) val_pago, + case + when co.ind_estado_cobranca = '1' and + 1 co.val_pago < nvl(co.val_a_pagar, 0) then + nvl(co.val_a_pagar, 0) - co.val_pago + when 1 = 1 then + 0 + end val_desconto, + when co.ind_estado_cobranca = '6' and + 1 end val_saldo, + (select crsur.nom_arquivo:n + 1 from controle_recebimento_sur crsur:n + 1 Where crsur.num_seq_controle_recbto = (select min(crs.num_seq_+ 1controle_recbto):n + 1 from credito_recebido_sur crs:n + where c+ 1rs.ind_estado_credito = 1:n + and co.num_seq_cobranca = crs.num_seq_+ 1cobranca ):n + 1 ) as nom_arquivo, when co.cod_tipo_cobranca = 3 then + nvl(co.cod_banco_dcc,co.cod_banco) + else + co.cod_banco + end cod_banco, + co.ind_estado_cobranca, + when co.dt_baixa is not null and + co.ind_estado_cobranca = '1' then + 1 'P' + 1 when co.dt_vencimento < trunc(sysdate) and + co.ind_estado_cobranca in ('0', '3') then + 1 'Ve' + 1 when co.dt_vencimento >= trunc(sysdate) and + 'Vi' + 1 when co.dt_cancelamento is not null then + 'C' + 1 when co.ind_estado_cobranca = '4' then + 1 'Rn' + 1 when co.ind_estado_cobranca = '6' then + 1 'BP' + 1 end situacao, + (select csr1.ind_forma_criacao:n + 1 from credito_recebido_sur csr1:n + 1 where csr1.num_seq_credito_recebido = (select min(crs.num_+ 1seq_credito_recebido):n + from credito_recebido_sur crs:n + + 1 where crs.ind_estado_credito = 1:n + and co.num_seq_cobranca = c+ 1rs.num_seq_cobranca):n and csr+ 11.ind_estado_credito = 1:n and+ 1 co.num_seq_cobranca = csr1.num_seq_cobranca) as forma_baixa, + 1 decode(co.num_dv_agencia_dcc,null,to_char(co.cod_agencia_dcc)+ 1,to_char(co.cod_agencia_dcc)) num_agencia, nvl(fa.val_irrf, 0) + nvl(fa.val_csll, 0) + + nvl(fa.val_cofins, 0) + nvl(fa.val_pis, 0) impostos, + case when nvl(co.val_a_pagar, 0) - nvl(co.val_pago, 0) > 0 an+ 1d co.ind_estado_cobranca = '1' then nvl(co.val_a_pagar, 0) - nvl(co.val_pago, 0) + else 0 + end diferenca, + nvl(co.qtd_dias_atraso, 0) qtd_dias_atraso, + nvl(es.num_cgc, '') num_cgc, + 1 decode(co.dt_vencimento_orig, null, 'NÃO', 'SIM') venc_altera+ 1do, when nvl(co.val_a_pagar_orig, 0) > 0 then + case + when nvl(co.val_a_pagar_orig, 0) < nvl(co.val_a_pagar, 0) th+ 1en 'SIM' + 1 else + 'NÃO' + 1 end else 'NÃO' end ins_encargos, + 1 when co.dt_vencimento_orig is not null then + (select nom_usuario + from usuario + where cod_usuario = co.cod_usuario_atu) + '' + 1 end nome_usu, + eq.num_celula_posvenda celula, + (select case + when exists + (select + from associado_aditivo aa2 + where aa2.cod_ts = b.cod_ts_tit + and aa2.dt_ini_vigencia <= last_day(cf.mes_ano_+ 1ref ) and (aa2.dt_fim_vigencia is null or + aa2.dt_fim_vigencia >= cf.mes_ano_ref)) th+ 1en 'Ambos' + 1 else + decode(pm.cod_tipo_plano, '1', 'Médico', '4', 'Dent+ 1al') end case + from beneficiario b, plano_medico pm, ciclo_faturamento cf + where b.cod_ts = co.cod_ts and cf.num_ciclo_ts = co.num_cicl+ 1o_ts and b.cod_plano = pm.cod_plano) ind_tipo_produto, + ce.tipo_empresa, + rg.nome_tipo_empresa, + 'P' || tcon.ind_tipo_pessoa segmento, + 1 case + when co.cod_tipo_cobranca = 3 then + nvl(cedcc.cod_cedente,ced.cod_cedente) + ced.cod_cedente + end cedente, + to_char(co.dt_vencimento, 'dd/mm/rrrr') dt_prorrogacao, + 1 ce_ge.num_contrato_editado contrato_mae, + fa.num_fatura_ret_rps num_nota_fiscal, + nvl(sass.nom_situacao, scon.nom_situacao) status_contrato, + null data_status, + mot.nom_cancelamento, + co.cod_ts, + co.ind_apos_dem, + co.ind_acao_jud, + ppf_op.num_operadora_ans, + ppf_op.nom_operadora, + (select pm.cod_plano + from itens_cobranca ic + inner join plano_medico pm + on pm.cod_plano = ic.cod_plano + where co.num_seq_cobranca = ic.num_seq_cobranca + and ic.cod_plano is not null + and pm.cod_tipo_plano = + and rownum = 1) cod_plano_medico, + (select pm.nome_plano + from itens_cobranca ic, plano_medico pm + and ic.cod_plano = pm.cod_plano + and rownum = 1) nome_plano_medico, + (select nvl(ic.cod_aditivo, decode(pm.cod_tipo_plano, 4, ic.+ 1cod_plano, null)) from itens_cobranca ic + left join plano_medico pm + on pm.cod_plano = ic.cod_plano + where ic.num_seq_cobranca = co.num_seq_cobranca + and (pm.cod_tipo_plano = 4 or ic.cod_aditivo is not null+ 1) and rownum = 1) cod_plano_dental, (select nvl(ad.nom_aditivo, pm.nome_plano) + from itens_cobranca ic, aditivo ad, plano_medico pm + and ic.cod_plano = pm.cod_plano (+) + and pm.cod_tipo_plano (+) = 4 + and ic.cod_aditivo = ad.cod_aditivo (+) + and (pm.cod_tipo_plano = 4 or ic.cod_aditivo is not null+ 1) and rownum = 1) nome_plano_dental, (select sum(val_item_cobranca) + inner join plano_medico pm + on ic.cod_plano = pm.cod_plano + where ic.num_seq_cobranca = co.num_Seq_cobranca + and pm.cod_tipo_plano = 1 + and ic.cod_grupo_rubrica in (1, 2,9) + and ic.cod_aditivo is null + and ic.cod_tipo_rubrica not in (45, 46, 244)) Val_medico, + nvl((select sum(val_item_cobranca) + and ic.cod_grupo_rubrica not in (1, 2,6,9) + and ic.cod_tipo_rubrica not in (45, 46, 244)),0) Val_out+ 1ros, nvl((select sum(val_item_cobranca) valor + from itens_cobranca ic, plano_medico pm + where ic.num_seq_cobranca = co.num_Seq_cobranca + and ic.cod_plano = pm.cod_plano + and ic.cod_grupo_rubrica in (1, 2,9) + and ic.cod_tipo_rubrica not in (45, 46, 244) + and pm.cod_tipo_plano = 4),0) + + from itens_cobranca ic, aditivo ad + and ic.cod_grupo_rubrica = 6 + and ic.cod_aditivo = ad.cod_aditivo),0) val_dental, + and ic.cod_tipo_rubrica in (46, 244)) val_taxas, + and ic.cod_tipo_rubrica in (45)) val_mensalidade_associa+ 1tiva, (select sum(nvl(val_item_pagar, 0)) + and ic.cod_tipo_rubrica not in (45, 46, 244)) Val_net_medi+ 1co, nvl((select sum(val_item_pagar) valor + and pm.cod_tipo_plano = 4),0) + + and ic.cod_aditivo = ad.cod_aditivo),0) val_net_denta+ 1l, ge.cod_grupo_empresa, + ge.nome_grupo_empresa, + (DECODE(fa.nom_logradouro, NULL, NULL, fa.nom_logradouro + 1 || ' ') || DECODE(fa.num_endereco, NULL, NULL, fa.num_endereco + 1 || ', ') || DECODE(fa.txt_complemento, NULL, NULL, fa.txt_complemento + 1 || ' - ') || DECODE(fa.num_cep, NULL, NULL, fa.num_cep + 1 || ' - ') || DECODE(fa.nome_bairro, NULL, NULL, fa.nome_bairro + 1 || ' - ') || DECODE(fa.nome_cidade, NULL, NULL, fa.nome_cidade + 1 || ' - ') || DECODE(fa.sgl_uf, NULL, NULL, fa.sgl_uf) ) endereco,+ (SELECT '('||becon.num_ddd||')' ||' '||becon.num_telefone + 1 FROM beneficiario_contato becon + WHERE becon.cod_entidade_ts = be.cod_entidade_ts + AND becon.ind_class_contato in ('T','C') + 1 AND becon.num_telefone IS NOT NULL + AND ROWNUM = 1) telefone, + NVL((SELECT 'S' + 1 FROM acao_jud_pgto + WHERE dt_ini_acao <= TRUNC(SYSDATE) + AND (dt_fim_acao > TRUNC(SYSDATE) OR dt_fim_acao IS NU+ 1LL) AND cod_ts = be.cod_ts + AND rownum =1), 'N') acao_judicial, + 1 to_char(ce.data_inicio_vigencia, 'dd/mm/rrrr') dt_ini_vigencia+ 1, to_char(be.data_inclusao, 'dd/mm/rrrr') data_inclusao, + 1 nvl(es.num_cpf, fa.num_cpf) NUM_CPF, + (SELECT dia_vencimento from associado a where a.cod_ts = be.cod+ 1_ts and rownum = 1) DIA_VENCIMENTO, (SELECT end_email + FROM beneficiario_contato + WHERE cod_entidade_ts = be.cod_entidade_ts + AND ind_class_contato = 'E' + 1 AND ROWNUM = 1) email, + coalesce(es_corr.nome_entidade,es_corrPj.nome_entidade) nome_co+ 1rretor, reg.nome_regional regiao, + ce.num_contrato_operadora , + ent_bene.data_nascimento , + ts_calcula_idade(ent_bene.data_nascimento, cf.mes_ano_ref, 'A+ 1') as idade , be.num_associado_operadora as Marca_otica_Medico , + 1 (select num_associado_operadora + from associado_aditivo ad, + aditivo adi, + contrato_aditivo ca, + grupo_aditivo ga + where ca.cod_ts_contrato = ad.cod_ts_contrato + and ca.dt_ini_vigencia <= ad.dt_ini_vigencia + and ca.cod_aditivo = ad.cod_aditivo + and ca.cod_ts_contrato_aditivo is not null + and ad.cod_aditivo = adi.cod_aditivo + and adi.cod_grupo_aditivo = ga.cod_grupo_aditivo + and ga.cod_grupo_aditivo = 1 + and ad.cod_ts = be.cod_ts) as marca_otica_dental, + : 1(select ass.data_reativacao from associado ass where cod_ts = be.cod_ts) as d+ 1ata_reativacao, (select mea.nome_motivo_exc_assoc from motivo_exclusao_assoc mea, beneficiar+ 1io_contrato bec:n where mea.cod_motivo_exc_asso+ 1c = bec.cod_motivo_exclusao:n and bec.cod_ts + 1= be.cod_ts) as motivo_exclusao , + 1 to_char(ce.data_inicio_vigencia,'dd') as dia_vigencia, + 1 enc.nom_empresa_cartao + : 1V: 1) x order by 39, 7, 5 : 1C: 1) x order by 39, 4, 7 : 1E: 1) x order by 39, 5, 7 : 1P: 1) x order by 39, 20, 7 : 1TRIM select /*rec_acompanhamento_cobranca.monta_query "resumo"*/ + mes_ano_ref + , mes_ano_ref_order + , ind_estado_cobranca + , situacao + , nome_estado_cobranca + , sum(nvl(val_a_pagar, 0)) val_a_pagar + , sum(nvl(val_pago, 0)) val_pago + , sum(nvl(val_desconto, 0)) val_desconto + , sum(nvl(val_saldo, 0)) val_saldo + from ( select + op.nom_operadora + , su.nome_sucursal + , ip.nome_inspetoria + , ce.num_contrato_editado num_contrato_editado + , nvl(nvl(es.nome_entidade, bent.nome_entidade), ge.nome_grupo+ 1_empresa) nome_entidade , es.nome_entidade nome_empresa + , nvl(co.dt_vencimento_orig,co.dt_vencimento) dt_vencimento_or+ 1der , to_char(co.dt_emissao,'dd/mm/rrrr') dt_emissao + , to_char(co.dt_vencimento,'dd/mm/rrrr') dt_vencimento + , to_char(co.dt_baixa,'dd/mm/rrrr') dt_baixa + , to_char(co.dt_registro_baixa,'dd/mm/rrrr') dt_registro_baixa+ , to_char(co.dt_cancelamento,'dd/mm/rrrr') dt_cancelamento + , co.txt_nosso_numero + , fa.num_fatura + , tc.nom_tipo_ciclo + , to_char(cf.mes_ano_ref, 'mm/rrrr') mes_ano_ref + , tcob.nome_tipo_cobranca + , co.ind_tipo_baixa + , tb.nome_tipo_baixa + , nvl(co.val_a_pagar, 0) val_a_pagar + , nvl(co.val_pago, 0) val_pago + , case when co.ind_estado_cobranca = '1' and co.val_pago < co.+ 1val_a_pagar then co.val_a_pagar - co.val_pago when 1 = 1 then 0 + end val_desconto + , case when co.ind_estado_cobranca = '6' and co.val_pago < co.+ 1val_a_pagar then co.val_a_pagar - co.val_pago end val_saldo + , null nom_arquivo + , co.cod_banco + , co.ind_estado_cobranca + , case when co.dt_baixa is not null and co.ind_estado_cobranca+ 1 = '1' then 'P' when co.dt_vencimento < trunc(sysdate) and co.ind_estad+ 1o_cobranca in ('0','3') then 'Ve' when co.dt_vencimento >= trunc(sysdate) and co.ind_esta+ 1do_cobranca in ('0','3') then 'Vi' when co.dt_cancelamento is not null then 'C' + when co.ind_estado_cobranca = '4' then 'Rn' + when co.ind_estado_cobranca = '6' then 'BP' + end situacao + , sc.nome_estado_cobranca + , cf.mes_ano_ref mes_ano_ref_order + ) group by mes_ano_ref , mes_ano_ref_order , ind_estado_cobranca , situacao , nome_estado_cobranca order by mes_ano_ref_order desc from contrato_empresa ce, cobranca co, entidade_sistema es, beneficiario_entidade bent, ciclo_faturamento cf, tipo_ciclo tc, tipo_cobranca tcob, fatura fa, operadora op, sucursal su, inspetoria ip, tipo_baixa tb, cedente_sur ced, cedente_sur cedcc , motivo_cancelamento mot, grupo_empresa ge, contrato_empresa ce_ge, tipo_contrato tcon, regra_empresa rg, cms_equipe_vendas eq, situacao_cobranca sc, ppf_operadoras ppf_op, situacao_contrato scon, beneficiario be, ppf_proposta ppf, entidade_sistema es_corr, corretor_venda cov, pj_proposta pj, entidade_sistema es_corrPj, corretor_venda covPj, regional reg, situacao_associado sass, beneficiario_entidade ent_bene, empresa_contrato enc where ce.cod_ts_contrato = co.cod_ts_contrato and ce.cod_titular_contrato = es.cod_entidade_ts(+) and ce.cod_titular_contrato_pf = bent.cod_entidade_ts(+) and co.num_ciclo_ts = cf.num_ciclo_ts and cf.cod_tipo_ciclo = tc.cod_tipo_ciclo and co.cod_tipo_cobranca = tcob.cod_tipo_cobranca and co.num_seq_fatura_ts = fa.num_seq_fatura_ts(+) and co.ind_tipo_baixa = tb.ind_tipo_baixa(+) and co.cod_operadora = op.cod_operadora and ce.cod_operadora_contrato = ppf_op.cod_operadora and ce.ind_situacao = scon.ind_situacao and co.dt_emissao is not null and co.cod_ts = be.cod_ts (+) and be.ind_situacao = sass.ind_situacao (+) and co.cod_sucursal = su.cod_sucursal and co.cod_inspetoria_ts = ip.cod_inspetoria_ts and co.cod_banco = ced.cod_banco(+) and co.num_seq_cedente = ced.num_seq_cedente(+) and co.cod_banco_dcc = cedcc.cod_banco(+) and co.num_seq_cedente_dcc = cedcc.num_seq_cedente(+) and ce.cod_cancelamento = mot.cod_cancelamento(+) and co.cod_grupo_empresa = ge.cod_grupo_empresa(+) and ge.cod_ts_contrato = ce_ge.cod_ts_contrato(+) and ce.cod_tipo_contrato = tcon.cod_tipo_contrato(+) and ce.tipo_empresa = rg.tipo_empresa(+) and ce.cod_equipe_posvenda = eq.cod_equipe_vendas(+) and be.num_seq_proposta_ts = ppf.num_seq_proposta_ts(+) and ppf.cod_produtor_ts = cov.cod_corretor_ts(+) and cov.cod_entidade_ts = es_corr.cod_entidade_ts(+) and ce.num_seq_proposta_pj_ts = pj.num_seq_proposta_pj_ts(+) and pj.cod_produtor_ts = covPj.cod_corretor_ts(+) and covPj.cod_entidade_ts = es_corrPj.cod_entidade_ts(+) and ce.cod_regional = reg.cod_regional(+) and co.ind_estado_cobranca = sc.ind_estado_cobranca(+) and ce.cod_ts_contrato = enc.cod_ts_contrato(+) and be.cod_entidade_ts = ent_bene.cod_entidade_ts(+) and ce.cod_tipo_contrato in ( select /*+cardinality( x 20 )*/ *:n + from ta+ 1ble(cast(top_utl_padrao.Split(::pCodTipoContrato ,',') as LST_VARCHAR_4K))x:n+ ) + + 1 and nvl(::pCodTipoContrato, 0) = 0 + : 1!=: 1S and nvl(cred.ind_estado_credito, 1) = + and co.cod_ts_contrato = ::pCodTsContrato + and nvl(::pCodTsContrato, 'X') = 'X' + and co.cod_entidade_ts = ::pCodEntidadeTs + and nvl(::pCodEntidadeTs, 0) = 0 + and co.cod_ts = ::pCodTs + and nvl(::pCodTs, 0) = 0 + : 1A and be.ind_situacao in('A') : 1ELSIF and be.ind_situacao = 'S' and be.ind_situacao = 'E' and co.cod_prestador_ts = ::pCodPrestadorTs + and nvl(::pCodPrestadorTs, 0) = 0 + and co.cod_tipo_cobranca = ::pCodTipoCobranca + and nvl(::pCodTipoCobranca, 0) = 0 + and co.ind_tipo_baixa = ::pIndTipoBaixa + and nvl(::pIndTipoBaixa, 0) = 0 + and co.dt_emissao >= to_date(::pDtIniEmissao,'dd/mm/rrrr') + and nvl(::pDtIniEmissao, 'X') = 'X' + and co.dt_emissao <= to_date(::pDtFimEmissao,'dd/mm/rrrr') + and nvl(::pDtFimEmissao, 'X') = 'X' + and co.dt_vencimento >= to_date(::pDtIniVencimento,'dd/mm/rrrr') + and nvl(::pDtIniVencimento, 'X') = 'X' + and co.dt_vencimento <= to_date(::pDtFimVencimento,'dd/mm/rrrr') + and nvl(::pDtFimVencimento, 'X') = 'X' + and co.dt_baixa >= to_date(::pDtIniPagamento,'dd/mm/rrrr') + and nvl(::pDtIniPagamento, 'X') = 'X' + and co.dt_baixa <= to_date(::pDtFimPagamento,'dd/mm/rrrr') + and nvl(::pDtFimPagamento, 'X') = 'X' + and co.dt_registro_baixa >= to_date(::pDtIniLiquidacao||' 00::00::00' ,'dd+ 1/mm/rrrr hh24::mi::ss') and nvl(::pDtIniLiquidacao, 'X') = 'X' + and co.dt_registro_baixa <= to_date(::pDtFimLiquidacao||' 23::59::59','dd+ 1/mm/rrrr hh24::mi::ss') and nvl(::pDtFimLiquidacao, 'X') = 'X' + and co.dt_cancelamento >= to_date(::pDtIniCancelamento||' 00::00::00','dd/+ 1mm/rrrr hh24::mi::ss') and nvl(::pDtIniCancelamento, 'X') = 'X' + and co.dt_cancelamento <= to_date(::pDtFimCancelamento||' 23::59::59','dd/+ 1mm/rrrr hh24::mi::ss') and nvl(::pDtFimCancelamento, 'X') = 'X' + and co.dt_competencia >= to_date(::pDtIniCompetencia,'dd/mm/rrrr') + and nvl(::pDtIniCompetencia, 'X') = 'X' + and co.dt_competencia <= to_date(::pDtFimCompetencia,'dd/mm/rrrr') + and nvl(::pDtFimCompetencia, 'X') = 'X' + and co.num_seq_cobranca = ::pNumSeqCobranca + and nvl(::pNumSeqCobranca, 0) = 0 + and co.num_seq_fatura_ts = ::pNumSeqFaturaTs + and nvl(::pNumSeqFaturaTs, 0) = 0 + and ((co.cod_tipo_cobranca != 3 and co.cod_banco = ::pCodBanco) or + (co.cod_tipo_cobranca = 3 and co.cod_banco_dcc = : 1)) and nvl(::pCodBanco, 0) = 0 + and cf.cod_tipo_ciclo = ::pCodTipoCiclo + and nvl(::pCodTipoCiclo, 0) = 0 + and cf.num_ciclo_ts = ::pNumCicloTs + and nvl(::pNumCicloTs, 0) = 0 + and co.cod_grupo_empresa = ::pSGrupoEmpresa + and nvl(::pSGrupoEmpresa, 'X') = 'X' + and ce.cod_operadora in ( select /*+cardinality( x 20 )*/ *:n + from table(cast+ 1(top_utl_padrao.Split(::pCodOperadora ,',') as LST_VARCHAR_4K))x:n + ) + and nvl(::pCodOperadora, 'X') = 'X' + and ce.cod_sucursal in ( select /*+cardinality( x 20 )*/ *:n + from table(cast(+ 1top_utl_padrao.Split(::pCodSucursal ,',') as LST_VARCHAR_4K))x:n + ) + and nvl(::pCodSucursal, 0) = 0 + and ce.cod_inspetoria_ts in ( select /*+cardinality( x 20 )*/ *:n + from ta+ 1ble(cast(top_utl_padrao.Split(::pCodInspetoriaTs ,',') as LST_VARCHAR_4K))x:n+ ) + and nvl(::pCodInspetoriaTs, 0) = 0 + and ce.cod_operadora_contrato in ( select /*+cardinality( x 20 )*/ *:n + from t+ 1able(cast(top_utl_padrao.Split(::pCodOperadoraContrato ,',') as LST_VARCHAR_4+ 1K))x:n + 1) and nvl(::pCodOperadoraContrato, 'X') = 'X' + and ce.ind_tipo_produto = ::pIndTipoProduto + and nvl(::pIndTipoProduto, '3') = '3' + and ce.tipo_empresa in ( select /*+cardinality( x 20 )*/ *:n + from table(cast(t+ 1op_utl_padrao.Split(::pIndTipoEmpresa ,',') as LST_VARCHAR_4K))x:n + ) + and nvl(::pIndTipoEmpresa, 0) = 0 + : 1F and co.cod_ts is not null + : 1J and co.cod_ts is null + and nvl(co.dt_vencimento_orig,co.dt_vencimento) != co.dt_vencimento + : 1N: 1AG: 1: 1,2: 1,3 and co.ind_tipo_cobranca in (: 1) and ( ( co.dt_baixa is not null and co.ind_estado_cobranca in ('1', '6') ) or ( co.dt_vencimento < trunc(sysdate) and co.ind_estado_cobranca in ('0', '3')+ 1 ) ( co.dt_vencimento >= trunc(sysdate) and co.ind_estado_cobranca in ('0', '3'+ 1) ) ( co.dt_cancelamento is not null ) ( co.ind_estado_cobranca = '4' ) ) :  
    • By Lucas Pedro Lopes Corrêa
      Bom dia pessoal, preciso de ajuda com um código que comecei a modificar. 
      Tenho uma pagina que exibe um formulário de consulta, e nesse formulário existem apenas duas funções, que são:
      Consultar por nota de entrega e consultar por protocolo. 
       
      Eu gostaria que quando o usuário setar a função de consulta por protocolo, apareça apenas a caixa do numero do protocolo, e que quando o usuário setar a caixa da nota de entrega apareça a caixa de talão e de numero de nota de entrega.
       
      O código da pagina de resultados é esse aqui:
      function page_render_upload() { global $wpdb; if ($_POST) { if (!function_exists('wp_handle_upload')) { require_once( ABSPATH . 'wp-admin/includes/file.php' ); } $uploadedfile = $_FILES['cf-file']; $upload_overrides = array('test_form' => false); $movefile = wp_handle_upload($uploadedfile, $upload_overrides); if ($movefile && !isset($movefile['error'])) { $arquivo = $movefile['file']; $file = fopen($arquivo, 'r'); $linha_atual = 0; $insert_ok = 0; $insert_erro = 0; while (($line = fgetcsv($file)) !== FALSE) { if ($linha_atual > 0) { $dados = $line[0]; $dados_exp = explode(";", $dados); $NUMERO_PROTOCOLO = $dados_exp[0]; $TALAO_NOTA = $dados_exp[1]; $NUMERO_NOTA = $dados_exp[2]; $DESCRICAO_SERVICO = htmlentities($dados_exp[3]); $DESCRICAO_SITUACAO = htmlentities($dados_exp[4]); $DATA_SITUACAO = $dados_exp[5]; $HORA_SITUACAO = $dados_exp[6]; $DATA_SOLICITACAO = $dados_exp[7]; $HORA_SOLICITACAO = $dados_exp[8]; $NOME_SOLICITANTE = htmlentities($dados_exp[9]); $EMAIL_SOLICITANTE = $dados_exp[10]; $TELEFONE_SOLICITANTE = htmlentities($dados_exp[11]); $CODIGO_VALIDADOR = htmlentities($dados_exp[12]); $sql = $wpdb->query("INSERT INTO {$wpdb->prefix}consulta_dado VALUES (NULL, " . "'$NUMERO_PROTOCOLO', " . "'$TALAO_NOTA'," . "'$NUMERO_NOTA'," . "'$DESCRICAO_SERVICO'," . "'$DESCRICAO_SITUACAO'," . "'$DATA_SITUACAO'," . "'$HORA_SITUACAO'," . "'$DATA_SOLICITACAO'," . "'$HORA_SOLICITACAO'," . "'$NOME_SOLICITANTE'," . "'$EMAIL_SOLICITANTE'," . "'$TELEFONE_SOLICITANTE'," . "'$CODIGO_VALIDADOR')"); if ($sql == 1) { $insert_ok++; } else { $insert_erro++; } } $linha_atual = $linha_atual + 1; } fclose($file); echo ' <div id="lost-connection-notice" class="error"> <p>Resultado da importação.<br> <span class="hide-if-no-sessionstorage"> <b>Sucesso:</b> ' . $insert_ok . '<br> <b>Erro:</b> ' . $insert_erro . ' </span> </p> </div>'; } else { echo ' <div id="lost-connection-notice" class="error"> <p>Resultado da importação.<br> <span class="hide-if-no-sessionstorage"> ' . $movefile['error'] . ' </span> </p> </div>'; } @unlink($arquivo); } echo '<div class="wrap"> <h1 class="wp-heading-inline">Cadastrar resultados de consultas</h1> <hr class="wp-header-end"> <form id="upload_resume_form" action="' . esc_url($_SERVER['REQUEST_URI']) . '" method="post" enctype="multipart/form-data"> <div id="poststuff"> <div id="post-body" class="metabox-holder columns-1"> <div id="post-body-content"> <div id="titlediv"> <div id="titlewrap"> <label for="title"><h3>Selecione o arquivo</h3></label> <input required type="file" name="cf-file" size="40" accept=".txt"/> </div> </div> <div><input type="submit" name="cf-submitted" value="Enviar" class="button button-primary button-large"></div> </div> </div> </form> </div>'; } function page_resultado() { global $wpdb; echo '<div class="row"> <div class="col-sm-12">'; echo '<form id="upload_resume_form" action="' . esc_url($_SERVER['REQUEST_URI']) . '" method="post"> <div class="form-group"> <label for="por">Consultar por</label> <br> <span class="wpcf7-form-control-wrap por"> <select name="por" id="por" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-lg form-control" aria-required="true" aria-invalid="false" required> <option value="" selected>Selecione</option> <option value="protocolo">Número do Protocolo</option> <option value="notadeentrega">Número da Nota de Entrega</option> </select> </span> <br> <span class="help-block"></span> </div> <div class="form-group"> <label for="talao_nota">Informe o Talão da Nota: "C", "N" ou "A"</label> <br> <span class="wpcf7-form-control-wrap talao_nota"> <input type="text" name="talao_nota" id="talao_nota" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-lg form-control" aria-required="true" aria-invalid="false" /> </span> <br> <span class="help-block"></span> </div> <div class="form-group"> <label for="consulta">Informe o Número</label> <br> <span class="wpcf7-form-control-wrap consulta"> <input required type="text" name="consulta" id="consulta" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-lg form-control" aria-required="true" aria-invalid="false" /> </span> <br> <span class="help-block"></span> </div> <div class="form-group"> <div class="col-sm-12"> <input type="submit" name="cf-submitted" value="Consultar" class="wpcf7-form-control wpcf7-submit btn btn-lg btn-primary"> </div> </div> </form>'; if ($_POST) { if (empty($_POST['por'])) { exit; } if ($_POST['por'] == 'protocolo') { $where = " NUMERO_PROTOCOLO = '" . $_POST['consulta'] . "' "; } else { $where = " NUMERO_NOTA = '" . $_POST['consulta'] . "' "; } if (isset($_POST['talao_nota']) && $_POST['talao_nota'] != '') { $where .= " AND TALAO_NOTA = '" . $_POST['talao_nota'] . "' "; } $sql = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}consulta_dado WHERE $where ORDER BY ID DESC LIMIT 1"); echo '<div class="row"> <div class="col-sm-12"> <h4 class="wp-heading-inline">Resultado</h4> <p>'; $total = count($sql); if ($total == 1) { foreach ($sql as $row) { /* * Alterar nome dos serviços */ $servico = "Não informado"; if ($row->DESCRICAO_SERVICO != '' || $row->DESCRICAO_SERVICO != null) { if ($row->DESCRICAO_SERVICO == 'CRC') { $servico = "CRC"; } else if ($row->DESCRICAO_SERVICO == 'Certidao') { $servico = "Certidão"; } else if ($row->DESCRICAO_SERVICO == 'Pessoas Juridicas') { $servico = "Pessoas Jurídicas"; } else if ($row->DESCRICAO_SERVICO == 'Titulos e Documento') { $servico = "Títulos e Documento"; } else if ($row->DESCRICAO_SERVICO == 'Registro Especial') { $servico = "Registros Especiais (Livro E)"; } else if ($row->DESCRICAO_SERVICO == 'Apostilamento') { $servico = "Apostilamento"; } } if ($row->NOME_SOLICITANTE != '' || $row->NOME_SOLICITANTE != null) echo '<b>Solicitante:</b> ' . $row->NOME_SOLICITANTE . '<br>'; if ($row->DESCRICAO_SERVICO != '' || $row->DESCRICAO_SERVICO != null) echo '<b>Serviço:</b> ' . $servico . '<br>'; if ($row->NUMERO_NOTA > 0 || $row->NUMERO_NOTA != null) echo '<b>Número da nota de entrega:</b> ' . $row->NUMERO_NOTA . '<br>'; if ($row->NUMERO_PROTOCOLO > 0 || $row->NUMERO_PROTOCOLO != null) echo '<b>Número do protocolo:</b> ' . $row->NUMERO_PROTOCOLO . '<br>'; if ($row->DATA_SOLICITACAO != '' || $row->DATA_SOLICITACAO != null) echo '<b>Data da Solicitação:</b> ' . $row->DATA_SOLICITACAO . '<br>'; if ($row->DESCRICAO_SITUACAO != '' || $row->DESCRICAO_SITUACAO != null) echo '<b>Situação:</b> ' . $row->DESCRICAO_SITUACAO . '<br>'; if ($row->DATA_SITUACAO != '' || $row->DATA_SITUACAO != null) echo '<b>Data da ultima atualização:</b> ' . $row->DATA_SITUACAO . '<br>'; if ($row->HORA_SITUACAO != '' || $row->HORA_SITUACAO != null) echo '<b>Horário da ultima atualização:</b> ' . $row->HORA_SITUACAO . '<br>'; } }else { echo "Nenhum resultado localizado."; } } echo '</p></div></div>'; echo '</div> </div>'; } add_shortcode('consulta_lista', 'page_resultado'); Caso saibam aonde estou errando, gostaria que me falassem.
       
      Esse é meu primeiro post aqui no fórum, espero que tenha feito certo. Obrigado!
       
       
       
       
       
       
    • By alekaspary
      Bom dia.
      Preciso de ajuda para montar uma view com mostre os reservatórios de modo hierárquico.
      Tenho a seguinte tabela.
       
      Reservatorios(
      -id
      -nome
      -pai_id
      )
       
      cada reservatório tem como pai outro reservatório, e gostaria de saber qual a melhor forma de mostrar isso em uma treeview por exemplo, sendo que cada reservatório fique dentro de seu 'pai'. OBS: não existe limite de níveis.
       
    • By leoteixeira2
      Ola pessoal, blz ??? 
       
      Galera estou com uma grande dificuldade para fazer uma consulta MYSQL. Preciso que retorne os produtos e a quantidade venda do mesmo para cada funcionario. Como a tabela a baixo:
       
      ESPECIFICACAO
      TOTAL_VENDAS_LUCAS
      TOTAL_VENDAS_LUIZ
      TOTAL_VENDAS_MARCELO
      PRECO_SC
      PRECO_PR
      CUSTO
      FANDANGOS
      3.5
      6.7
      7.0
      7.90
      8.50
      5.00
      COCA COLA
      5.6
      5.6
      8.0
      8.50
      8.70
      6.00
      ALCATRA
      12.4
      8.2
      6.4
      15.78
      14.47
      10.00
      CERVEJA
      44.8
      54.9
      5.3
      14.75
      10.64
      12.36
      BARALHO
      32.9
      5.0
      4.8
      5.74
      6.20
      4.20
       
      Porém não sei como que estrutura  varios WHERE na mesma consulta, porque são varios funcionarios(5). Tipo o código a baixo só me retorna os valores do funcionario Luiz Henrique. Minha duvida então é o seguinte, como que faço para ter o total_venda de cada funcionario em uma mesma consulta como na tabela acima.
      SELECT DISTINCT(especificacao), preco_sc, preco_pr, custo, SUM(venda_sc) + (venda_pr) as total_venda_luiz FROM pagamentos where funcionario=("Luiz Henrique") and (dia >='01' and dia <='31') and mes=('11') and ano=('2018') GROUP BY especificacao;  
      Alguem poderia me dar uma luz por favor ???? OBRIGADOOO
    • By leoteixeira2
      Ola pessoal, blz ??? 
       
      Galera estou com uma grande dificuldade para fazer uma consulta MYSQL. Preciso que retorne os produtos e o valor total da venda do mesmo para cada funcionario. Como a tabela a baixo:
       
      ESPECIFICACAO
      TOTAL_VENDAS_LUCAS
      TOTAL_VENDAS_LUIZ
      TOTAL_VENDAS_MARCELO
      PRECO_SC
      PRECO_PR
      CUSTO
      FANDANGOS
      3.5
      6.7
      7.0
      7.90
      8.50
      5.00
      COCA COLA
      5.6
      5.6
      8.0
      8.50
      8.70
      6.00
      ALCATRA
      12.4
      8.2
      6.4
      15.78
      14.47
      10.00
      CERVEJA
      44.8
      54.9
      5.3
      14.75
      10.64
      12.36
      BARALHO
      32.9
      5.0
      4.8
      5.74
      6.20
      4.20
       
      Porém não sei como que estrutura  varios WHERE na mesma consulta, porque são varios funcionarios(5). Tipo o código a baixo só me retorna os valores do funcionario Luiz Henrique. Minha duvida então é o seguinte, como que faço para ter o total_venda de cada funcionario em uma mesma consulta como na tabela acima.
      SELECT DISTINCT(especificacao), preco_sc, preco_pr, custo, SUM(venda_sc) + (venda_pr) as total_venda_luiz FROM pagamentos where funcionario=("Luiz Henrique") and (dia >='01' and dia <='31') and mes=('11') and ano=('2018') GROUP BY especificacao;  
      Alguem poderia me dar uma luz por favor ???? OBRIGADOOO
×

Important Information

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