Вы можете попробовать это:
CREATE TABLE #MyTable
(PrimaryKey int PRIMARY KEY,
DateValueBegin DATETIME,
DateValueEnd DATETIME,
NbValue int
);
GO
INSERT INTO #MyTable
SELECT 1, DATEADD(HOUR,-2,GETDATE()), GETDATE(), 214
UNION
SELECT 2, DATEADD(HOUR,-2,GETDATE()), DATEADD(HOUR,-1,GETDATE()), 100
UNION
SELECT 3, DATEADD(HOUR,-2,GETDATE()), GETDATE(), 200
UNION
SELECT 4, DATEADD(HOUR,-1,GETDATE()), NULL, 210
UNION
SELECT 5, DATEADD(HOUR,-1,GETDATE()), NULL, 0;
SELECT *, SUM(NbValue) OVER(ORDER BY PrimaryKey
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as 'Totaltime',
1000 - SUM(NbValue) OVER(ORDER BY PrimaryKey
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) As 'RestTime' FROM #MyTable
DROP TABLE #MyTable
Объясните в этом посте: Рассчитать промежуточную сумму в SQL Server
РЕЗУЛЬТАТ:
PrimaryKey DateValueBegin DateValueEnd NbValue Totaltime RestTime
1 2019-01-17 09:48:05.123 2019-01-17 11:48:05.123 214 214 786
2 2019-01-17 09:48:05.123 2019-01-17 10:48:05.123 100 314 686
3 2019-01-17 09:48:05.123 2019-01-17 11:48:05.123 200 514 486
4 2019-01-17 10:48:05.123 NULL 210 724 276
5 2019-01-17 10:48:05.123 NULL 0 724 276
[ 1110] Для пользователя в предыдущей версии SQL Server вы можете проверить по этому посту: http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005 --- the -timal.aspx
ПЕРЕСМОТР Для предыдущей версии SQL:
CREATE TABLE #MyTable
(PrimaryKey int PRIMARY KEY,
DateValueBegin DATETIME,
DateValueEnd DATETIME
);
GO
INSERT INTO #MyTable
SELECT 1, DATEADD(HOUR,-214,GETDATE()), GETDATE()
UNION
SELECT 2, DATEADD(HOUR,-100,GETDATE()), DATEADD(HOUR,-1,GETDATE())
UNION
SELECT 3, DATEADD(HOUR,-200,GETDATE()), GETDATE()
UNION
SELECT 4, DATEADD(HOUR,-1,GETDATE()), NULL
UNION
SELECT 5, DATEADD(HOUR,-1,GETDATE()), NULL;
SELECT * FROM #MyTable
SELECT PrimaryKey,
DateValueBegin,
DateValueEnd,
DATEDIFF(hour,DateValueBegin,IIF(DateValueEnd IS NOT NULL ,DateValueEnd, DateValueBegin)) as Testtime,
(SELECT SUM(DATEDIFF(hour,DateValueBegin,IIF(DateValueEnd IS NOT NULL ,DateValueEnd, DateValueBegin)))
FROM #MyTable t2
WHERE t2.PrimaryKey <= t1.PrimaryKey ) AS Totaltime,
DATEDIFF(hour,DateValueBegin,IIF(DateValueEnd IS NOT NULL ,DateValueEnd, DateValueBegin)) as Testtime,
(SELECT 1000-SUM(DATEDIFF(hour,DateValueBegin,IIF(DateValueEnd IS NOT NULL ,DateValueEnd, DateValueBegin)))
FROM #MyTable t3
WHERE t3.PrimaryKey <= t1.PrimaryKey ) AS Resttime
FROM #MyTable t1
DROP TABLE #MyTable
РЕЗУЛЬТАТ:
PrimaryKey DateValueBegin DateValueEnd Testtime Totaltime Testtime Resttime
1 2019-01-08 18:17:35.430 2019-01-17 16:17:35.430 214 214 214 786
2 2019-01-13 12:17:35.430 2019-01-17 15:17:35.430 99 313 99 687
3 2019-01-09 08:17:35.430 2019-01-17 16:17:35.430 200 513 200 487
4 2019-01-17 15:17:35.430 NULL 0 513 0 487
5 2019-01-17 15:17:35.430 NULL 0 513 0 487
Извините, но я не знал Ваша вся конфигурация Можете ли вы попробовать это:
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.TestID AND t2.TesttableID = 1 ) AS Resttime FROM Testresults t1 WHERE t1.TesttableID = 1
Word довольно придирчив касающийся вход обеспеченный XML. Для встраивания изображения необходимо предоставить небольшое количество информации. Вот простой пример:
document.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0">
<wp:extent cx="5943600" cy="3717290"/>
<wp:docPr id="1" name="Picture 0" descr="vlcsnap-325726.png"/>
<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="0" name="myImage.png"/>
<pic:cNvPicPr/>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId4"/>
<a:stretch>
<a:fillRect/>
</a:stretch>
</pic:blipFill>
<pic:spPr>
<a:xfrm>
<a:off x="0" y="0"/>
<a:ext cx="5943600" cy="3717290"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData>
</a:graphic>
</wp:inline>
</w:drawing>
</w:r>
</w:p>
</w:body>
</w:document>
document.xml.rels
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<!-- other relationships go here -->
<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image1.png"/>
</Relationships>
И конечно изображение должно быть добавлено к пакету в корректном местоположении (media/image1.png)
Так как все это скорее сложно, я рекомендовал бы Вам использовать OpenXML SDK 2.0, обеспеченный Microsoft или другой библиотекой, например, OpenXML4J. Эти библиотеки, особенно та от Microsoft может сделать Вашу работу намного легче.