logo



Problema 3

Situaţia consultațiilor medicilor de familie se realizează prin intermediul unei baze de date cu mai multe tablele. Tabelul Consultatii are următoarea structură Id (N,9), Data (D), Diagnostic (T,200), Tratament (T,250), Cod_parafa_medic (N,8), Nr_carnet_pacient (N,10).
Cerințe:

  1. Creați structura tabelului Consultatii;
  2. Introduceți următoarele înregistrări în tabelul Consultatii:

  3. Id

    Data

    Diagnostic

    Tratament

    Cod_parafa_medic

    Nr_carnet_pacient

    7

    12.ian.2014

    Gripa

    Reteta…

    9813

    4556

    18

    21.mar.2014

    Contuzie

    Trimitere…

    6733

    23567

    9

    07.dec.2013

    Gripa

    Reteta…

    9813

    23567

    16

    11.ian.2014

    Arsura

    Reteta…

    9813

    21224

    21

    23.mar.2014

    Gripa

    Trimitere…

    6733

    8975

    19

    08.mar.2014

    Gripa

    Reteta…

    9813

    4556


  4. Afișați consultațiile din luna ianuarie 2014 ale medicului care are codul de parafă 9813;
  5. Afişaţi numărul pacienţilor care au fost diagnosticaţi cu gripă în luna martie 2014.

Rezolvare:

# a)

CREATE TABLE Consultatii (
    Id INT(9) NOT NULL PRIMARY KEY,
    Data DATE,
    Diagnostic VARCHAR(200),
    Tratament VARCHAR(250),
    Cod_parafa_medic INT(8),
    Nr_carnet_pacient INT(10)
);

# b)

#Trebuie să convertim datele din formatul 12.ian.2014 în formatul MySQL YYYY-MM-DD:

INSERT INTO Consultatii (Id, Data, Diagnostic, Tratament, Cod_parafa_medic, Nr_carnet_pacient) VALUES
(7,  '2014-01-12', 'Gripa',    'Reteta…',     9813, 4556),
(18, '2014-03-21', 'Contuzie', 'Trimitere…',  6733, 23567),
(9,  '2013-12-07', 'Gripa',    'Reteta…',     9813, 23567),
(16, '2014-01-11', 'Arsura',   'Reteta…',     9813, 21224),
(21, '2014-03-23', 'Gripa',    'Trimitere…',  6733, 8975),
(19, '2014-03-08', 'Gripa',    'Reteta…',     9813, 4556);

SELECT * from Consultatii;

# c)

SELECT * 
FROM Consultatii
WHERE 
    Cod_parafa_medic = 9813 AND
    MONTH(Data) = 1 AND
    YEAR(Data) = 2014;
    
# d)

/* Notă: Dacă un pacient apare de mai multe ori, dar te interesează numărul total de consultații, folosești COUNT(*). 
Dacă vrei numărul de pacienți distincți, folosești COUNT(DISTINCT ...).*/

# Număr total de consultații cu gripă în martie 2014:

SELECT COUNT(*) AS Nr_consultatii_gripa_martie
FROM Consultatii
WHERE 
    Diagnostic = 'Gripa' AND
    MONTH(Data) = 3 AND
    YEAR(Data) = 2014;
    
# Număr distinct de pacienți cu gripă în martie 2014:

SELECT COUNT(DISTINCT Nr_carnet_pacient) AS Nr_pacienti_gripa_martie
FROM Consultatii
WHERE 
    Diagnostic = 'Gripa' AND
    MONTH(Data) = 3 AND
    YEAR(Data) = 2014;

 

 



Copyright © 2016 Kalytheo