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

Questão de SQL SELECT


Guest --Leonardo --

Pergunta

Guest --Leonardo --

eae pessoal, gostaria de ajuda URGENTE com essa questao

CONTAS

ID CONTA DATA VALOR IDMOTIVO

1 05/012007 R$100,00 103

2 09/01/2007 R$700,00 101

3 11/01/2007 R$50,00 103

4 22/01/2007 R$1020,00 102

5 30/01/2007 R$833,00 102

MOTIVO

IDMOTIVO DESCRICAO

101 ALUGUEL

102 MATERIAL DE ESCRITORIO

103 MATERIAL DE LIMPEZA

104 ENERGIA

1. Crie comandos SQL usando SELECT para encontrar:

a. Qual o motivo gastoum mais durante o mês

b. qual foi o menor lançamento durante o mês

c. Qual a média dos lançamentos de materias

d. qual lançamento não apresenta despesas

2. crie um comando de DELETE para os motivos que não apesentam lançamento.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Tenta algo assim:

create  table #CONTAS (ID_CONTA int, DATA datetime, VALOR int, IDMOTIVO int)

insert into #CONTAS  (ID_CONTA , DATA, VALOR, IDMOTIVO) values (1, '2007/01/05', 100, 103)
insert into #CONTAS  (ID_CONTA , DATA, VALOR, IDMOTIVO) values (2, '2007/01/09', 700, 101)
insert into #CONTAS  (ID_CONTA , DATA, VALOR, IDMOTIVO) values (3, '2007/01/11', 50, 103)
insert into #CONTAS  (ID_CONTA , DATA, VALOR, IDMOTIVO) values (4, '2007/01/22', 1020, 102)
insert into #CONTAS  (ID_CONTA , DATA, VALOR, IDMOTIVO) values (5, '2007/01/30', 833, 102)


create table #MOTIVO (IDMOTIVO int, Descricao varchar(50))
insert into #MOTIVO  (IDMOTIVO ,Descricao) values (101, 'ALUGUEL')
insert into #MOTIVO  (IDMOTIVO ,Descricao) values (102, 'MATERIAL DE ESCRITORIO')
insert into #MOTIVO  (IDMOTIVO ,Descricao) values (103, 'MATERIAL DE LIMPEZA')
insert into #MOTIVO  (IDMOTIVO ,Descricao) values (104, 'ENERGIA')


--Produto que gatou mais
 select top 1 descricao,  sum(valor)
                from #CONTAS C ,#MOTIVO M
                where c.IDMOTIVO = m.IDMOTIVO
                group by descricao
                order by sum(valor) desc 


--qual foi o menor lançamento durante o mês
        select top 1  descricao,min(valor)
        from #CONTAS C ,#MOTIVO M
        where c.IDMOTIVO = m.IDMOTIVO
        group by descricao
        order by min(valor)

--c. Qual a média dos lançamentos de materias
select sum(valor) / (select count(valor)    
                     from #CONTAS )
from #CONTAS

--d. qual lançamento não apresenta despesas
        select m.idmotivo,descricao
        from #MOTIVO M
        where  not exists (select * from  #CONTAS C 
                            where c.IDMOTIVO = m.IDMOTIVO)



--2. crie um comando de DELETE para os motivos que não apesentam lançamento.         
       delete 
        from #MOTIVO 
        where  not exists (select * from  #CONTAS C
                            where c.IDMOTIVO = #MOTIVO.IDMOTIVO)

    select * from  #MOTIVO 

drop table #MOTIVO 
drop table #CONTAS

Agora é só apdaptar para vossa necessidade. Storede procedure, função ou query simples.

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...