abfrage nach zeitintervall

25/02/2010 - 18:35 von Martin | Report spam
hallo newsgroup!
in einer datenbank für fußballstatistik soll eine tabelle für die zeitràume
der trainertàtigkeit sein mit folgenden spalten:

'TrainerID' int als fremdschlüssel aus tabelle Trainer
'TeamID' als int fremdschlüssel aus tabelle Teams
'FromDate' als datetime

ob mir vielleicht jemand sagen würde, wie ich eine abfrage nach dem trainer
zu einem bestimmten zeitpunkt gestalten muß, ohne eine zusàtzliche spalte
'ToDate' einzuführen, die sich in logik ja eigentlich aus dem beginn des
nàchsten ergibt.

fall das gehen sollte - wie sieht es mit dem derzeitigen trainer aus, also
dem, der keinen nachfolger hat?
oder falls eine zusàtzlich spalte 'ToDate' sein muß, wie steuere ich die
letzte zelle, daß sie jeweils das zur zeit der abfrage aktuelle datum zurück
gibt?

danke schon mal für eine antwort!
gruß
Martin
 

Lesen sie die antworten

#1 Uwe Ricken
26/02/2010 - 08:14 | Warnen spam
Hallo Martin,

so sollte es funktionieren (wenn es das ist, was Du suchst!)

USE TempDB
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID('tbl_Trainer_Team') AND type = 'U')
DROP TABLE dbo.tbl_Trainer_Team
GO

CREATE TABLE dbo.tbl_Trainer_Team
(
Trainer_Id int NOT NULL,
Team_Id int NOT NULL,
StartDate datetime NOT NULL,

CONSTRAINT pk_tbl_Trainer_Team PRIMARY KEY
(
Trainer_Id,
Team_Id,
StartDate
)
)


INSERT INTO dbo.tbl_Trainer_Team
(Trainer_Id, Team_Id, StartDate)
SELECT 1, 1, '20090601'
UNION
SELECT 1, 3, '20090915'
UNION
SELECT 1, 5, '20100205'

INSERT INTO dbo.tbl_Trainer_Team
(Trainer_Id, Team_Id, StartDate)
SELECT 2, 2, '20080601'
UNION
SELECT 1, 4, '20090915'
UNION
SELECT 1, 5, '20100605'

SELECT * FROM dbo.tbl_Trainer_Team

DECLARE @TrainerId int
DECLARE @SearchDate datetime
SET @TrainerId = 1
SET @SearchDate = '20090901'


SELECT Trainer_Id, Team_Id, StartDate
FROM dbo.tbl_Trainer_Team
WHERE Trainer_Id = @TrainerId AND
StartDate = (SELECT MAX(StartDate) FROM dbo.tbl_Trainer_Team WHERE
Trainer_Id = @TrainerId AND StartDate <= @SearchDate)



Uwe Ricken
db Berater GmbH
http://www.db-berater.de

MCTS: Microsoft SQL Server 2005
MCDBA: Microsoft SQL Server 2005

Ähnliche fragen