akan sangat sulit untuk menjelaskan hal ini dengan kata-kata jadi saya akan mencoba contoh kecil untuk menjelaskan kepada Anda apa yang saya inginkan:
misalnya saya punya tabel SQL-Server ini
+-------+-------+------+
| TestID| Start | End |
+-------+-------+------+
| 1 | DateA | DateB|
| 2 | DateA | DateB|
| 3 | DateA | DateB|
| 4 | DateA | |
+-------+-------+------+
Yang saya inginkan adalah tabel ini:
$Istirahat = 1000
+-------+-------+------+----------+-----------+----------+
| TestID| Start | End | Testtime | Totaltime | Resttime |
+-------+-------+------+----------+-----------|----------|
| 1 | DateA | DateB| 214 | 214 | 786 |
| 2 | DateA | DateB| 100 | 314 | 686 |
| 3 | DateA | DateB| 200 | 514 | 486 |
| 4 | DateA | | | | |
+-------+-------+------+----------+-----------+----------+
saya memiliki masalah untuk memahami apa yang harus saya gabungkan
berikut adalah kode untuk mendapatkan tabel SQL-Server pertama
SELECT TestID, Start, End, DATEDIFF(hour, Start, End) AS Testtime
FROM Testresults
WHERE TesttableID = 1
Setiap Baris mendapat TesttableID = 1
terima kasih atas bantuannya.
Sunting: Versi SQL Server: 9.0.5057
Sunting : Saya mendapatkan hasil tetapi tidak tepat, hasilnya dialihkan dalam Totaltime dan Resttime
SELECT t1.TestID,
t1.start,
t1.end,
t1.TesttableID,
DATEDIFF(hour,t1.start,t1.end) as Testtime,
(SELECT SUM(DATEDIFF(hour,t2.start,t2.end))
FROM Testresults t2
WHERE t2.TestID <= t1.TestsID AND t2.TesttableID = 1 ) AS Totaltime,
(SELECT 1000-SUM(DATEDIFF(hour,t2.start,t2.end))
FROM Testresults t2
WHERE t2.TestID <= t1.TestIDAND t2.TesttableID = 1 ) AS Resttime FROM Testresults t1 WHERE t1.TesttableID = 1
Apa yang saya dapatkan adalah Hasil Ini, mereka beralih ..:
+-------+-------+------+----------+-----------+----------+
| TestID| Start | End | Testtime | Totaltime | Resttime |
+-------+-------+------+----------+-----------|----------|
| 1 | DateA | DateB| 214 | 514 | 486 |
| 2 | DateA | DateB| 100 | 300 | 700 |
| 3 | DateA | DateB| 200 | 200 | 800 |
| 4 | DateA | | | | |
+-------+-------+------+----------+-----------+----------+