ajuda consulta

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

como posso implementar essa consulta por exemplo

tabela fundos

Selecionar tudo

nome_cliente   nome_estudo_ de fundos
petrobras	2010_1
petrobras	2010_2
petrobras	2010_3
shell		shell_2010
shell		shell_2011
shell		shel_2011
tenho um select que já me traz todos os resultados do fundo
porem vou passar o nome do cliente por parametro e ele tem
que ir nessa tabela fundos identificar que por exemplo a
petrobras tem 3 estudos salvos e rodar o meu select que eu já
tenho para cada um dos estudo de fundos...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

select *
from fundos
where nome_cliente = 'petrobras'
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

e eu coloco o meu select que já tenho dentro desse, mais ai ele vai rodar o estudo de todos meus fundos ?

porque cada fundo tem valor especifico..

olha o select de cada fundo.

Selecionar tudo

SELECT decode(g1,null,g2,g1),vg1,vg2,pm1,pm2
  FROM  
    (SELECT VG.GRUPO g1, VG.POS_PERC vg1, VG.PERC_MARGINAL pm1 FROM VARS V , VAR_DEFINICOES VD, VAR_GRUPOS VG   
        WHERE V.NOME_VAR = UPPER(:nome) AND 
            V.COD_VAR = VD.COD_VAR AND V.COD_VAR = VG.COD_VAR AND VD.DATA_COTACAO = (:data_inicial) ) MES1 
FULL OUTER JOIN   
    (SELECT VG.GRUPO g2, VG.POS_PERC vg2, VG.PERC_MARGINAL pm2 FROM VARS V, VAR_DEFINICOES VD, VAR_GRUPOS VG  
       WHERE  V.NOME_VAR LIKE UPPER(:nome) AND 
        V.COD_VAR = VD.COD_VAR AND V.COD_VAR = VG.COD_VAR AND VD.DATA_COTACAO =  (:data_final) ) MES2   
     ON MES1.g1 = MES2.g2 
     ORDER BY PM2 DESC
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

brother..
I don´t have a crystal ball

no post 1
você disse ter uma tabela com 2 colunas e gostaria de um select filtrando pelo nome do cliente..

no post 2
você posta uma query q não vai na tabela que você dissera ter..

tente se colocar no meu lugar.. esqueça que você está envolvido no problema, apenas leno os seus post.. você acha que deu condição para alguém resolver o seu problema.. tomara que sim e o problema seja comigo que não conseguir entender nada do que você disse

boa sorte
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

ok vamos la

esse meu select que postei é para rodar o resultado de 2 meses de um fundo certo, então preciso ir a até a minha tabela de fundos onde eu posso ter

Selecionar tudo

nome_cliente   nome_do_fundo
Petrobras        p8
Petrobras        p9
Petrobras        p10
shell               s1
shell               s2
shell               s3
então vou passar o nome do cliente por paramentro por exemplo petrobras
então ele tem que que pegar o meu select que tem os resultados do fundo
e me trazer o resultado de p8, p9, p10

fui mais claro..

obg
Diego_Mello
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 229
Registrado em: Sex, 05 Set 2008 2:59 pm
Localização: Igrejinha - RS
Diego Mello
Igrejinha - RS
www.twitter.com/diegolmello

Selecionar tudo

SELECT *
  FROM fundos
 WHERE UPPER(nome_cliente) = 'PETROBRAS' 
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

ola, obrigado pela ajuda mais essa informação eu já tenho a minha duvida é a seguinte, por exemplo a petrobras preciso do resultado dos 3 estudos
p8, p9 e p10 qsó com esse select que você me passou eu consigo isso, ou preciso fazer um while ou alguma coisa assim para ele me apresentar o resultado dos 3 estudos ?


no caso quem me traz esse resultado de cada estudo é o meu select que postei anteriormente.


obrigado
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

você não ta podendo executar isso agora?

esse select vai trazer TODOS os resultados para o cliente petrobras..
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

essa era minha duvida, não estou podendo executar agora..
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

consegui rodar a consulta , mais ou menos daquel jeito que me falou e não deu certo, rodei do jeito abaixo ele me traz os resultados esperados só que ele por exemplo me tras os dados dos relatorios 1, 2 , 3 tudo misturado, precisava que ele rodasse o 1 e mostre o resultado, roda o 2 e mostra e assim por diante olha como esta minha consulta:

Selecionar tudo

SELECT decode(g1,null,g2,g1)"ESTUDO",vg1,vg2,pm1,pm2, 
  FROM 
    (SELECT VG.GRUPO g1, VG.POS_PERC vg1, VG.PERC_MARGINAL pm1 FROM VARS V , VAR_DEFINICOES VD, VAR_GRUPOS VG, ZXT_RES_FUNDOS ZX
        WHERE V.NOME_VAR = (ZX.ESTUDOS) AND zx.nome_cliente = :NOME_CLIENTE AND
        V.COD_VAR = VD.COD_VAR AND V.COD_VAR = VG.COD_VAR AND VD.DATA_COTACAO = (:data_inicial)  ) MES1 
FULL OUTER JOIN   
    (SELECT VG.GRUPO g2, VG.POS_PERC vg2, VG.PERC_MARGINAL pm2 FROM VARS V, VAR_DEFINICOES VD, VAR_GRUPOS VG, ZXT_RES_FUNDOS ZX
       WHERE V.NOME_VAR = (ZX.ESTUDOS) AND zx.nome_cliente = :NOME_CLIENTE AND
        V.COD_VAR = VD.COD_VAR AND V.COD_VAR = VG.COD_VAR AND VD.DATA_COTACAO =  (:data_final) ) MES2 
        ON MES1.g1 = MES2.g2 
     ORDER BY PM2 DESC
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

sem conhecer teu modulo fica dificil entender o que você ta falando...

não resolveria com um agrupamento ou então você vai filtrar pelo fundo que você quer visualizar

seria isso?
batofao
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Seg, 30 Ago 2010 9:47 am
Localização: Jundiai

sim era um agrupamento e já consegui. valeu pela força...
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes