Skip to content

Commit

Permalink
ajustando coisas
Browse files Browse the repository at this point in the history
tirando coisas inuteis e poluentes
miguelfermo committed Jun 24, 2024
1 parent efada6c commit db0751b
Showing 7 changed files with 71 additions and 116 deletions.
1 change: 0 additions & 1 deletion SQLQuery_1.sql

This file was deleted.

6 changes: 3 additions & 3 deletions arquivos_prog/conexao_banco.py
Original file line number Diff line number Diff line change
@@ -61,7 +61,7 @@ def add_agendas(connection, paciente_id, dentista_id, data_hora_inicio, data_hor
'''
cursor.execute(query, (paciente_id, dentista_id, data_hora_inicio, data_hora_fim, disponivel))
salvar_alteracoes(connection)
print("Agendamento adicionado com sucesso.")
print("\nAgendamento adicionado com sucesso.")

# Removendo Agendas
def remover_agendas(connection, agenda_id):
@@ -71,7 +71,7 @@ def remover_agendas(connection, agenda_id):
'''
cursor.execute(query, (agenda_id,))
salvar_alteracoes(connection)
print("Agendamento removido com sucesso.")
print("\nAgendamento removido com sucesso.")

# Mostrar Agendas
def mostrar_agendas(connection):
@@ -98,4 +98,4 @@ def mudar_agendas(connection, agenda_id, paciente_id=None, dentista_id=None, dat
'''
cursor.execute(query, (paciente_id, dentista_id, data_hora_inicio, data_hora_fim, disponivel, agenda_id))
salvar_alteracoes(connection)
print("Agendamento alterado com sucesso.")
print("\nAgendamento alterado com sucesso.")
18 changes: 9 additions & 9 deletions arquivos_prog/main.py
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ def main():
match escolha:
case 1:
os.system("cls")
print("1-Adicionar Agendamento")
print("1-Adicionar Agendamento\n")

paciente_id = int(input("Digite o código do paciente: "))
dentista_id = int(input("Digite o código do dentista: "))
@@ -36,7 +36,7 @@ def main():

case 2:
os.system("cls")
print("2-Remover Agendamento")
print("2-Remover Agendamento\n")

agenda_id = int(input("Digite o código do agendamento para remover: "))

@@ -46,14 +46,14 @@ def main():

case 3:
os.system("cls")
print("3-Listar Agendamentos")
print("3-Listar Agendamentos:\n")
mostrar_agendas(connection)
input("Pressione qualquer tecla para continuar...")
input("\nPressione qualquer tecla para continuar...")
os.system("cls")

case 4:
os.system("cls")
print("4-Mudar Agendamento")
print("4-Mudar Agendamento\n")

agenda_id = int(input("Digite o código da agenda que você deseja alterar: "))

@@ -63,25 +63,25 @@ def main():
else:
paciente_id = None

mudarDentista = int(input("Você deseja alterar o dentista? (1) Sim e (2) Não: "))
mudarDentista = int(input("\nVocê deseja alterar o dentista? (1) Sim e (2) Não: "))
if mudarDentista == 1:
dentista_id = int(input("Digite o código do dentista que você deseja alterar: "))
else:
dentista_id = None

mudarInicio = int(input("Você deseja alterar a data de início? (1) Sim e (2) Não: "))
mudarInicio = int(input("\nVocê deseja alterar a data de início? (1) Sim e (2) Não: "))
if mudarInicio == 1:
data_hora_inicio = input("Digite a data de início da consulta (yyyy-MM-dd HH:mm:ss): ")
else:
data_hora_inicio = None

mudarFim = int(input("Você deseja alterar a data de fim? (1) Sim e (2) Não: "))
mudarFim = int(input("\nVocê deseja alterar a data de fim? (1) Sim e (2) Não: "))
if mudarFim == 1:
data_hora_fim = input("Digite a data de fim da consulta (yyyy-MM-dd HH:mm:ss): ")
else:
data_hora_fim = None

mudarDisponibilidade = int(input("Você deseja alterar a disponibilidade? (1) Sim e (2) Não: "))
mudarDisponibilidade = int(input("\nVocê deseja alterar a disponibilidade? (1) Sim e (2) Não: "))
if mudarDisponibilidade == 1:
disponivel = int(input("Digite a nova disponibilidade: "))
else:
15 changes: 0 additions & 15 deletions scripts_sql/adicionar_alterar_excluir.sql

This file was deleted.

145 changes: 57 additions & 88 deletions scripts_sql/consultas_de_negocio.sql
Original file line number Diff line number Diff line change
@@ -1,101 +1,70 @@
---1. Total de receitas por dentista em um determinado período, incluindo número de consultas e custo total dos tratamentos realizados.

WITH ConsultaDetalhes AS (
SELECT
c.DentistaID,
COUNT(c.ConsultaID) AS NumeroDeConsultas,
SUM(t.Custo) AS CustoTotalTratamentos,
SUM(r.Valor) AS ReceitaTotal
FROM
Consultas c
LEFT JOIN
Prontuarios p ON c.PacienteID = p.PacienteID AND c.DentistaID = p.DentistaID AND c.DataHora = p.Data
LEFT JOIN
Tratamentos t ON p.TratamentoID = t.TratamentoID
LEFT JOIN
Receitas r ON c.PacienteID = r.PacienteID AND CAST(c.DataHora AS DATE) = r.DataReceita
WHERE
c.DataHora BETWEEN '2024-06-01' AND '2024-06-30'
GROUP BY
c.DentistaID
SELECT c.DentistaID,
COUNT(c.ConsultaID) AS NumeroDeConsultas,
SUM(t.Custo) AS CustoTotalTratamentos,
SUM(r.Valor) AS ReceitaTotal
FROM Consultas c
LEFT JOIN Prontuarios p ON c.PacienteID = p.PacienteID AND c.DentistaID = p.DentistaID AND c.DataHora = p.Data
LEFT JOIN Tratamentos t ON p.TratamentoID = t.TratamentoID
LEFT JOIN Receitas r ON c.PacienteID = r.PacienteID AND CAST(c.DataHora AS DATE) = r.DataReceita
WHERE c.DataHora BETWEEN '2024-06-01' AND '2024-06-30'
GROUP BY c.DentistaID
)
SELECT
d.Nome AS Dentista,
cd.NumeroDeConsultas,
cd.CustoTotalTratamentos,
cd.ReceitaTotal
FROM
Dentistas d
INNER JOIN
ConsultaDetalhes cd ON d.DentistaID = cd.DentistaID
ORDER BY
cd.ReceitaTotal DESC;
SELECT d.Nome AS Dentista,
cd.NumeroDeConsultas,
cd.CustoTotalTratamentos,
cd.ReceitaTotal
FROM Dentistas d
INNER JOIN ConsultaDetalhes cd ON d.DentistaID = cd.DentistaID
ORDER BY cd.ReceitaTotal DESC;
GO

---2. Pacientes que mais gastaram em tratamentos nos últimos três meses, incluindo detalhes do tratamento e o dentista responsável.

WITH GastosPacientes AS (
SELECT
r.PacienteID,
SUM(r.Valor) AS GastoTotal
FROM
Receitas r
WHERE
r.DataReceita BETWEEN DATEADD(MONTH, -3, GETDATE()) AND GETDATE()
GROUP BY
r.PacienteID
SELECT r.PacienteID,
SUM(r.Valor) AS GastoTotal
FROM Receitas r
WHERE r.DataReceita BETWEEN DATEADD(MONTH, -3, GETDATE()) AND GETDATE()
GROUP BY r.PacienteID
)
SELECT
p.Nome AS Paciente,
gp.GastoTotal,
t.Descricao AS Tratamento,
d.Nome AS Dentista,
pr.Data
FROM
GastosPacientes gp
INNER JOIN
Pacientes p ON gp.PacienteID = p.PacienteID
INNER JOIN
Prontuarios pr ON p.PacienteID = pr.PacienteID
INNER JOIN
Tratamentos t ON pr.TratamentoID = t.TratamentoID
INNER JOIN
Dentistas d ON pr.DentistaID = d.DentistaID
WHERE
pr.Data BETWEEN DATEADD(MONTH, -3, GETDATE()) AND GETDATE()
ORDER BY
gp.GastoTotal DESC;
SELECT p.Nome AS Paciente,
gp.GastoTotal,
t.Descricao AS Tratamento,
d.Nome AS Dentista,
pr.Data
FROM GastosPacientes gp
INNER JOIN Pacientes p ON gp.PacienteID = p.PacienteID
INNER JOIN Prontuarios pr ON p.PacienteID = pr.PacienteID
INNER JOIN Tratamentos t ON pr.TratamentoID = t.TratamentoID
INNER JOIN Dentistas d ON pr.DentistaID = d.DentistaID
WHERE pr.Data BETWEEN DATEADD(MONTH, -3, GETDATE()) AND GETDATE()
ORDER BY gp.GastoTotal DESC;
GO

---3. Média de custo dos tratamentos por especialidade dos dentistas, considerando apenas os tratamentos realizados no último ano.
SELECT
d.Especialidade,
AVG(t.Custo) AS MediaCustoTratamento
FROM
Dentistas d
INNER JOIN
Prontuarios p ON d.DentistaID = p.DentistaID
INNER JOIN
Tratamentos t ON p.TratamentoID = t.TratamentoID
WHERE
p.Data BETWEEN DATEADD(YEAR, -1, GETDATE()) AND GETDATE()
GROUP BY
d.Especialidade
ORDER BY
MediaCustoTratamento DESC;

SELECT d.Especialidade,
AVG(t.Custo) AS MediaCustoTratamento
FROM Dentistas d
INNER JOIN Prontuarios p ON d.DentistaID = p.DentistaID
INNER JOIN Tratamentos t ON p.TratamentoID = t.TratamentoID
WHERE p.Data BETWEEN DATEADD(YEAR, -1, GETDATE()) AND GETDATE()
GROUP BY d.Especialidade
ORDER BY MediaCustoTratamento DESC;
GO

---4. Pacientes atendidos por cada dentista, divididos por sexo, nos últimos seis meses.
SELECT
d.Nome AS Dentista,
p.Sexo,
COUNT(c.ConsultaID) AS NumeroDePacientes
FROM
Consultas c
INNER JOIN
Pacientes p ON c.PacienteID = p.PacienteID
INNER JOIN
Dentistas d ON c.DentistaID = d.DentistaID
WHERE
c.DataHora BETWEEN DATEADD(MONTH, -6, GETDATE()) AND GETDATE()
GROUP BY
d.Nome, p.Sexo
ORDER BY
d.Nome, p.Sexo;

SELECT d.Nome AS Dentista,
p.Sexo,
COUNT(c.ConsultaID) AS NumeroDePacientes
FROM Consultas c
INNER JOIN Pacientes p ON c.PacienteID = p.PacienteID
INNER JOIN Dentistas d ON c.DentistaID = d.DentistaID
WHERE c.DataHora BETWEEN DATEADD(MONTH, -6, GETDATE()) AND GETDATE()
GROUP BY d.Nome, p.Sexo
ORDER BY d.Nome, p.Sexo;
GO
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -9,6 +9,8 @@ DROP TABLE IF EXISTS Agendas;
DROP TABLE IF EXISTS Receitas;
GO


-- Verificando se as tabelas foram removidas
SELECT * FROM Pacientes;
SELECT * FROM Dentistas;
SELECT * FROM Consultas;

0 comments on commit db0751b

Please sign in to comment.