quinta-feira, 16 de outubro de 2014

Banco de Dados Exercicio - Post Gree SQL

 Exercício 16 out



1 selecionar o faturamento  do posto nos anos de 2012 e 2014

select sum (valor) from valor_abastecimento join abastecimento using (id_abastecimento)
where data_abastecimento between '2012-01-01 00:00:00' and '2012-12-31 23:59:59' or data_abastecimento between '2014-01-01 00:00:00' and '2014-12-31 23:59:59'


-- com extract --

 select sum (valor) from valor_abastecimento join abastecimento using (id_abastecimento)
where extract (year from data_abastecimento) in (2012,2014)



2 - selecionar a placa dos carros e a quantidade abastecida por cada um

 select v.placa, sum(a.qtd_abastecida) from veiculo v join abastecimento a using (id_veiculo) group by 1



3 selecionar o nome do funcionário e a quantidade media abastecida por ele
durante o primeiro semestre de 2013 deve se ordenar da maior para a menor media


select f.nome , avg(a.qtd_abastecida) from funcionario f join abastecimento a
using (id_funcionario) where a.data_abastecimento between '2013-01-01 00:00:00' and '2013-06-30 23:59:59' group by 1 order by 2 desc;


--- com extract ---

select f.nome , avg(a.qtd_abastecida) from funcionario f join abastecimento a
using (id_funcionario) where extract (month from a.data_abastecimento) between 1 and 6 and extract (year from a.data_abastecimento) = 2013 group by 1 order by 2 desc;


4 - selecionar o nome do funcionário que abasteceu mais vezes

select f.nome from abastecimento a join funcionario f using (id_funcionario) group by 1 order by count (a.id_abastecimento) desc limit 1;


5 selecionar as placas dos veículos que não abasteceu no ano de 2014

select placa from veiculo where id_veiculo not in (select id_veiculo from abastecimento where data_abastecimento between '2014-01-01 00:00:00' and '2014-12-31 23:59:59')


-- com extract --

select placa from veiculo
where id_veiculo not in
(select id_veiculo from abastecimento
 where extract (year from data_abastecimento) = 2014);


6 selecionar o nome do cliente e valor a ser pago pelo mesmo
no mes de abril de 2014


 select c.nome, sum (valor)
 from
 veiculo v join abastecimento a using (id_veiculo)
 join cliente c using (id_cliente)
 join valor_abastecimento using (id_abastecimento)
 where a.data_abastecimento between '2014-01-01 00:00:00' and '2014-04-30 23:59:59' group by 1;



7 selecionar o nome do combustível e qual o valor vendido de cada um


select c.tipo, sum(va.valor)
from combustivel c join abastecimento a using (id_combustivel) join valor_abastecimento va using (id_abastecimento) group by 1;









sexta-feira, 10 de outubro de 2014

Escreva uma função que receba como parâmetro de entrada um número real e retorne como parâmetro de saída apenas a parte inteira do número. (Exemplo: parâmetro de entrada = 12,3421566666, parâmetro e saída = 12).

#include<stdio.h>

funcao(float *r,int *i)
{


*r = *i;


}


main()
{
 int i;
 float r;

 printf("digite um numero real:");
 scanf("%f",&r);

funcao(&r,&i);

printf("%d",i);

}

7. Escreva uma função que recebe como parâmetro de entrada a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias.

CODIGO C


#include <stdio.h>
#include <stdlib.h>
int convertedias(int anos, int meses, int dias){
int dias2;
dias2 = (anos * 365) + (meses * 30) + dias;
printf("Sua idade em dias e %d\n", dias2);
}
int main()
{
int anos, meses, dias;
printf("Informe a idade em anos, meses e dias\n");
scanf("%d %d %d", &anos, &meses, &dias);
convertedias(anos, meses, dias);
return 0;
}

terça-feira, 7 de outubro de 2014

Escreva uma função que recebe por parâmetro de entrada o raio de uma esfera e retorna como parâmetro de saída o seu volume (v = (4*PI*R3)/3).

Escreva uma função que recebe por parâmetro de entrada o raio de uma esfera e

retorna como parâmetro de saída o seu volume (v = (4*PI*R3)/3).



CODIGO:


#include<stdio.h>

funcao(int *raio)
{
float volume;

volume = (4 * 3,14 * *raio^3) / 3;
}

main()
{

int raio;
float volume;

printf("Digite o Valor do Raio : \n");
scanf("%d", &raio);

volume = funcao(&raio);

printf("%f",volume);
}

Função - Media Aritmetica e Ponderada - Linguagem C

Elabore um programa contendo uma função que receba as três notas de um aluno como parâmetros e uma letra. Se a letra for A, a função deverá calcular a média aritmética das notas do aluno; se for P, deverá calcular a média ponderada, com pesos 5, 3 e 2. A média calculada deverá ser devolvida ao programa principal para, então, ser mostrada.

CODIGO:


#include<stdio.h>
notas(int *n1, int *n2, int *n3, char *tipo)
{
float media;

switch (*tipo){
case 'A':
    media = (*n1 + *n2 + *n3) / 3.0;
    break;
case 'P':
    media = (5.0 * *n1 + 3.0 * *n2 + 2.0 * *n3) / 10.0;
    break;
default:
    printf("Opcao Invalida\n");

    }
    return media;
}

main (){
int n1,n2,n3;
char tipo;
float media;


    printf("Digite as 3 notas do aluno e Digite A para Calcular a Media e P para Media Ponderada: \n");
    scanf("%d %d %d %c",&n1,&n2,&n3,&tipo);

    media = notas(&n1,&n2,&n3,&tipo);

    printf("%f", media);


}