Witam ponownie drodzy Państwo, to znowu ja :D Ostatnio dość długo męczyłem z Waszą wielką pomocą XML'e i z sukcesem, zaliczone na 4+, więc przy okazji wielkie dzięki za pomoc.
Dzisiaj mam zmierzysz się z kolejnym problem, który z początku wydawał mi się prosty, lecz gdy się zagłębiłem trochę w temat już tak różowo nie jest. Mianowicie mam napisać skypty, jeden ma generować wykres liniowy obrazujący liczbę obsłużonych pacjentów w danym roku ( z rodzdzielczością 1 miesiąca) przez lekarzy pracujących w przychodni. Ma to wyglądać tak że najpierw ma być odpalany skrypt generujący dane, następnie skrypt gnuplot który wytworzy wykres. Dla każdego lekarza powinna być osobna linia na tymże wykresie. Oczywiście należy sparametryzować te skrypty, aby można było je wykorzystać dla wybranych lat. Skrypt SQL powinien być odpalony w sqlcmd.
Tabele zaprojektowane według następującego schematu:
create table Pacjenci (
Id int primary key,
Imie varchar(25),
Nazwisko varchar(25))
create table Lekarze(
Id int primary key,
Imie varchar(25),
Nazwisko varchar(25)
)
create table Terminy(
Id int primary key,
IdLekarza int foreign key references Lekarze(Id),
OdGodziny Time,
DoGodziny Time,
Dzien Date)
create table Wizyty(
Id int primary key,
IdPacjenta int foreign key references Pacjenci(Id),
IdTerminu int foreign key references Terminy(Id),
Godzina Time
)
napisałem też selecta, tylko tyle, że mój select nie zakłada tego podziału właśnie na miesięczne okresy ;/
SELECT
Lekarze.Imie
,Lekarze.Nazwisko
,count(Wizyty.Id) ile
FROM
(Lekarze join Terminy on Lekarze.Id=Terminy.IdLekarza) join
Wizyty on Wizyty.IdTerminu=Terminy.Id
WHERE
Terminy.Dzien BETWEEN '2016-01-01' AND '2016-12-31'
GROUP BY
Lekarze.Imie, Lekarze.Nazwisko
prowadzący podał jeszcze nam takie polecenia jak niżej, ale na razie to brak pomysłu jak z tym ruszyć do przodu
sqlcmd -S LAPTOP\SQLEXPRESS -d LAB05 -i "K:\LAB06\select.txt" > select.tmp
type select.tmp | findstr /r /v ^\-[,\-]*$>select.csv