Ich habe 3 Tabellen wie folgt.Verwirrende Summe Ergebnis
- Benutzer
- StatusTable
- Time_Tracker
Und die Beziehung ist als unten.
Benutzer haben username
und userid
, hat StatusTable userName
und Time_Tracker hat userName
Im Folgenden meine Tabellendaten.
Und hier Ich versuche, die Summe
Problem zu erhalten:
ich die productiontime
als Summe von time taken[minutes]
aktualisieren möchten von case owner
-username
und TT.userId = Users.userId
Beitritt und die login = GetDate()
Meine Abfrage ist
update Time_Tracker set ProductionTime = (select sum(ST.[time taken(minutes)])
from statustable as st inner join users as u
on st.[case owner] = u.username
inner join Time_Tracker as TT
on u.userId = TT.userId
where cast(st.[Start Time] AS DATE) = CAST(GETDATE() as Date)
Group By TT.UserId, u.UserId) where CAST(Login AS DATE) = CAST(GETDATE() as Date)
Und die blaue Box in meinem Bild ist meine aktuelle O/P.
Als ich
select sum([time taken(minutes)]) as totalTme from StatusTable where cast([Start Time] AS DATE) = CAST(GETDATE() as Date)
laufen bekomme ich die O/p als 2.05
die richtige ist.
Bitte lassen Sie mich wissen, wo gehe ich falsch in meiner ersten Abfrage (Drucken 10.25) anstelle von 2.05
.
Wie kann ich das beheben?
Dank
Ja, rechts Ihre Abfrage gibt 5 mal Wert zurück, so können Sie sicherstellen, indem Sie den Wert vor der Aktualisierung auswählen. – Susang
Hallo Freund, Danke für diese Lösung, das funktioniert wie Charme. Auch habe ich vergessen in meiner Frage zu erwähnen, gibt es einen Weg, wo ich das Session-Element während der Aktualisierung bekommen kann, wie 'where userid = session Element' – user3872094
@ user3872094. . . Ich denke, du solltest eine neue Frage als Frage stellen und nicht in einem Kommentar. –