Je souhaite diviser les données de temps d'un employé en plusieurs lignes en fonction de leur heure d'arrivée. Pour cet exemple, si elles arrivent avant 7 heures, tout ce qui précède sera séparé en une nouvelle ligne des données et tout 7 heures et après est l'autre rangée. Voici un exemple de données avec l'ensemble de résultats souhaité. Ceci est pour aider à calculer les heures supplémentaires. Si elles apparaissent avant leur quart de travail fixe alors que le temps est OT payerDivision des données de temps en plusieurs lignes
Create Table TimeData(
[ID] [int] IDENTITY(1,1) NOT NULL,
[EmployeeID] int NULL,
[Date] date NULL,
[TimeIn] time NULL,
[TimeOut] time Null,
)
Insert Into TimeData (EmployeeID,Date,Timein,TimeOut)
Values (100,'9/5/2017','06:00','15:00')
jeux de résultats
(100, '9/5/2017', '06h00', '7:00')
(100, '9/5/2017', '07h00', '15:00')
l'Union Toutes les suggestions ci-dessous m'a orienté dans la bonne direction et je suis venu avec cet ensemble de requête pour créer un nouvel enregistrement de temps pour les employés qui ont frappé avant 07h00 et ensuite mettre à jour l'original.
BEGIN
INSERT INTO Timedata(EmployeeID,Date,TimeIn,TimeOut)
SELECT
[EmployeeID],
[Date],
[TimeIn] AS [Time], '7:00'
FROM
TimeData
WHERE
[TimeIn] < '07:00:00'
END
BEGIN
UPDATE TimeData Set TimeIn = '07:00' WHERE TimeIN < '07:00' AND TimeOut <> '7:00'
END
Mais pourquoi? Quelle est la raison commerciale derrière tout cela? Sont ces changements? Pas mon DV BTW. – scsimon
Le DV est pour montrer absolument aucun effort de recherche. –
Ceci est pour aider à calculer les heures supplémentaires. S'ils se présentent avant leur quart de travail, ce temps est payé par OT. La procédure stockée réelle est beaucoup plus complexe. Il y aura plusieurs entrées de temps pour un jour et le total des heures sera calculé, mais j'ai juste besoin d'un brain storming collectif sur la façon de dégager ce tumle. Je ne pense pas que ça mérite un DV mais si ça devient DV et que je reçois toujours de l'aide de la communauté, c'est quand même très apprécié – BrianMichaels