public List <AnalisePassageiro> IdadePassageiros()
        {
            List <AnalisePassageiro> model = new List <AnalisePassageiro>();

            using (OracleConnection connection = ConnectionBD.Connection())
            {
                OracleCommand command = connection.CreateCommand();
                command.CommandText = " SELECT PASSAGEIRO.CPF " +
                                      " 	 , PASSAGEIRO.NOME"+
                                      " 	 , L2.CIDADE"+
                                      " 	, COUNT(L2.CIDADE) \"QUANT\""+
                                      " ,FLOOR((sysdate-PASSAGEIRO.DATANASCIMENTO)/ 365) \"IDADE\"" +
                                      " FROM PASSAGEIRO" +
                                      " INNER JOIN PASSAGEM" +
                                      " ON PASSAGEIRO.CPF = PASSAGEM.PASSAGEIROCPF" +
                                      " INNER JOIN VIAGEM" +
                                      " ON VIAGEM.ID = PASSAGEM.VIAGEMID" +
                                      " INNER JOIN LOCALIZACAO L1" +
                                      " ON VIAGEM.ORIGEMID = L1.ID " +
                                      " INNER JOIN LOCALIZACAO L2" +
                                      " ON VIAGEM.DESTINOID = L2.ID" +
                                      " WHERE PASSAGEIRO.CPF IN (SELECT p.CPF FROM PASSAGEIRO p WHERE FLOOR((sysdate-p.DATANASCIMENTO)/365) >= 65) " +
                                      " GROUP BY L2.CIDADE, PASSAGEIRO.CPF, PASSAGEIRO.NOME, FLOOR((sysdate-PASSAGEIRO.DATANASCIMENTO)/ 365)";

                try
                {
                    connection.Open();
                    OracleDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        AnalisePassageiro analise = new AnalisePassageiro();
                        analise.cpf     = reader["CPF"].ToString();
                        analise.nome    = reader["NOME"].ToString();
                        analise.destino = reader["CIDADE"].ToString();
                        analise.quant   = (decimal)reader["QUANT"];
                        analise.idade   = reader["IDADE"].ToString();
                        model.Add(analise);
                    }
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }

            return(model);
        }
        public List <AnalisePassageiro> ListaPassageiros()
        {
            List <AnalisePassageiro> model = new List <AnalisePassageiro>();

            using (OracleConnection connection = ConnectionBD.Connection())
            {
                OracleCommand command = connection.CreateCommand();
                command.CommandText = "SELECT PASSAGEIRO.CPF" +
                                      "	, PASSAGEIRO.NOME" +
                                      "	, PASSAGEM.POLTRONA" +
                                      "	, L1.CIDADE AS \"ORIGEM\"" +
                                      "	, L2.CIDADE AS \"DESTINO\"" +
                                      "	, VIAGEM.HORASVOO AS \"TEMPO DE VIAGEM\" " +
                                      "FROM PASSAGEIRO " +
                                      "INNER JOIN PASSAGEM " +
                                      "ON PASSAGEIRO.CPF = PASSAGEM.PASSAGEIROCPF " +
                                      "INNER JOIN VIAGEM " +
                                      "ON VIAGEM.ID = PASSAGEM.VIAGEMID " +
                                      "INNER JOIN LOCALIZACAO L1 " +
                                      "ON VIAGEM.ORIGEMID = L1.ID " +
                                      "INNER JOIN LOCALIZACAO L2 " +
                                      "ON VIAGEM.DESTINOID = L2.ID";
                try
                {
                    connection.Open();
                    OracleDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        AnalisePassageiro analise = new AnalisePassageiro();
                        analise.cpf         = reader["CPF"].ToString();
                        analise.nome        = reader["NOME"].ToString();
                        analise.poltrona    = (decimal)reader["POLTRONA"];
                        analise.origem      = reader["ORIGEM"].ToString();
                        analise.destino     = reader["DESTINO"].ToString();
                        analise.tempoViagem = (decimal)reader["TEMPO DE VIAGEM"];
                        model.Add(analise);
                    }
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }

            return(model);
        }
        public List <AnalisePassageiro> MultViagens()
        {
            List <AnalisePassageiro> model = new List <AnalisePassageiro>();

            using (OracleConnection connection = ConnectionBD.Connection())
            {
                OracleCommand command = connection.CreateCommand();
                command.CommandText = " SELECT PASSAGEIRO.CPF " +
                                      " 	 , PASSAGEIRO.NOME"+
                                      " 	 , L2.CIDADE"+
                                      " 	, COUNT(L2.CIDADE) AS \"NUMVEZES\""+
                                      " FROM PASSAGEIRO" +
                                      " INNER JOIN PASSAGEM" +
                                      " ON PASSAGEIRO.CPF = PASSAGEM.PASSAGEIROCPF" +
                                      " INNER JOIN VIAGEM" +
                                      " ON VIAGEM.ID = PASSAGEM.VIAGEMID" +
                                      " INNER JOIN LOCALIZACAO L1" +
                                      " ON VIAGEM.ORIGEMID = L1.ID " +
                                      " INNER JOIN LOCALIZACAO L2" +
                                      " ON VIAGEM.DESTINOID = L2.ID" +
                                      " HAVING  COUNT(L2.CIDADE) >1" +
                                      " GROUP BY L2.CIDADE, PASSAGEIRO.CPF, PASSAGEIRO.NOME";

                try
                {
                    connection.Open();
                    OracleDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        AnalisePassageiro analise = new AnalisePassageiro();
                        analise.cpf     = reader["CPF"].ToString();
                        analise.nome    = reader["NOME"].ToString();
                        analise.destino = reader["CIDADE"].ToString();
                        analise.quant   = (decimal)reader["NUMVEZES"];
                        model.Add(analise);
                    }
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }

            return(model);
        }