私はweekdat sundayにのみ含めるwhere句を持つ別のテーブルからの値SundayとSundayTimesを持つ日曜日のテーブルを持っています。日曜日は、カウントされた軍事時間00:00から23:00のリストであるSundayTimesの時間内に仕事を記録した病院メンバーのIDの数です。あるので、それはリストの正しい順序でフォーマットカウントが存在しない別のテーブルから行の値を表示する方法
02:00 0
に表示されるので、何時間では、私が行方不明の時間を占めるだろうか
00:00 3
01:00 4
03:00 2
として、午前2時用のテーブルが表示され記録されません。私は可能性のあるすべての欠落時間を考慮に入れることができなければなりません。なぜなら、これが引き出すパラメータは日付と日付が異なるからです。日曜日のための
結果: enter image description here
ここでは私がこれまで持っているものです。
CREATE TABLE #TestingTesting123 (Id bigint, WkDay varchar(30), Admittime varchar(5), primary key(Id))
INSERT INTO #TestingTesting123 (Id, WkDay, Admittime)
SELECT r.Id,
datename(dw, r.AdmitDate) As WkDay,
CASE
WHEN r.Admittime = ':'
THEN '00:00'
ELSE
isnull(LEFT(r.Admittime,2),0) + ':00 '
END as AdmitTime
FROM registrations r
WHERE r.AdmitDate between @fromdate AND @todate
AND r.registrationtypeid = @RegistrationTypeId
ORDER BY AdmitTime Asc
create table #Sundays (Sunday BIGINT, SundayTimes varchar(5))
INSERT INTO #Sundays (Sunday, SundayTimes)
SELECT Count(t.Id) As Sunday,
t.Admittime as SundayTimes
FROM #TestingTesting123 t
WHERE t.WkDay = 'Sunday'
GROUP BY t.Admittime
create table #Mondays (Monday bigint, MondayTimes varchar(5))
insert into #Mondays (Monday, MondayTimes)
Select count(t.Id) As Monday,
t.Admittime as MondayTimes
from #TestingTesting123 t
where t.WkDay = 'Monday'
group by t.Admittime
create table #Tuesdays (Tuesday bigint, TuesdayTimes varchar(5))
insert into #Tuesdays (Tuesday, TuesdayTimes)
select count(t.Id) as Tuesday,
t.Admittime as TuesdayTimes
from #TestingTesting123 t
where t.WkDay = 'Tuesday'
group by t.Admittime
create table #Wednesdays (Wednesday bigint, WednesdayTimes varchar(5))
insert into #Wednesdays (Wednesday, WednesdayTimes)
select count(t.Id) AS Wednesday,
t.Admittime as WednesdayTimes
from #TestingTesting123 t
where t.WkDay = 'Wednesday'
group by t.Admittime
create table #Thursdays (Thursday bigint, ThursdayTimes varchar(5))
insert into #Thursdays (Thursday, ThursdayTimes)
select count(t.Id) as Thursday,
t.Admittime as ThursdayTimes
from #TestingTesting123 t
where t.WkDay = 'Thursday'
group by t.Admittime
create table #Fridays (Friday bigint, FridayTimes varchar(5))
insert into #Fridays (Friday, FridayTimes)
select count(t.Id) As Friday,
t.Admittime as FridayTimes
from #TestingTesting123 t
where t.WkDay = 'Friday'
group by t.Admittime
create table #Saturdays (Saturday bigint, SaturdayTimes varchar(5))
insert into #Saturdays (Saturday, SaturdayTimes)
select count(t.Id) as Saturday,
t.Admittime as SaturdayTimes
from #TestingTesting123 t
where t.WkDay = 'Saturday'
group by t.Admittime
declare @FinalResults table(AdmitTime varchar(5), Sunday bigint, Monday bigint, Tuesday bigint, Wednesday bigint, Thursday bigint, Friday bigint, Saturday bigint)
insert into @FinalResults (AdmitTime, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
select su.SundayTimes as AdmitTime,
su.Sunday as Sunday,
m.Monday as Monday,
t.Tuesday as Tuesday,
w.Wednesday as Wednesday,
th.Thursday as Thursday,
f.Friday as Friday,
s.Saturday as Saturday
from #Sundays su
inner join #Mondays m on m.MondayTimes = su.SundayTimes
inner join #Tuesdays t on t.TuesdayTimes = su.SundayTimes
inner join #Wednesdays w on w.WednesdayTimes = su.SundayTimes
inner join #Thursdays th on th.ThursdayTimes = su.SundayTimes
inner join #Fridays f on f.FridayTimes = su.SundayTimes
inner join #Saturdays s on s.SaturdayTimes = su.SundayTimes
select fr.AdmitTime,
fr.Sunday,
fr.Monday,
fr.Tuesday,
fr.Wednesday,
fr.Thursday,
fr.Friday,
fr.Saturday
from @FinalResults fr
ドロップテーブル#TestingTesting123 ドロップテーブル#Sundays ドロップテーブル#Mondays ドロップテーブル#Tuesdays ドロップテーブル#Wednesdays ドロップテーブル#Thursdays ドロップテーブル#Fridays ドロップテーブル#Saturdays
どのようなSQL Serverのバージョンを使用しますか? – ventik