图像显示我的查询有两个表和输出。而不是输出采用图像格式,我需要如下。
Date Time | Load Cell 0 | Load Cell 1
----------------------------------------------
03/06/2016 12 14
08/07/2016 4 7
我相信我可能需要使用Pivot ????但我只是坚持如何做到这一点。
我在Visual Studio中为C#Windows窗体应用程序执行此操作,数据将显示在数据网格中并用于图形/图表。使用的db是MS SQL CE文件。
如果有人可以提供帮助。提前谢谢。
答案 0 :(得分:1)
select cast(test.datetime as date) [date],
sum(case when loads.loads_cell = 0 then loads.kN end) [Load Cell 0],
sum(case when loads.loads_cell = 1 then loads.kN end) [Load Cell 1]
from loads
join tests on loads.test_id = tests.tests_id
group by cast(test.datetime as date)
答案 1 :(得分:1)
你认为这可以从PIVOT中获益是正确的。
SELECT TestDate, pvt.[0], pvt.[1]
FROM (
SELECT t.DateTime as TestDate, l.Load_Cell_ID as LCID, l.kn
FROM loads as l
INNER JOIN Tests as t on l.Test_ID = t.Test_ID
) as inr
PIVOT (
SUM(kn) FOR LCID in ([0], [1]) --specify additional load cell ids here
) as pvt
话虽如此,我不确定SQL CE是否具有pivot运算符。您可能必须使用嵌套查询,如t-clausen.dk建议的那样。
答案 2 :(得分:0)
我想如果你事先不知道列名 - 在你的情况下,SQL中的PIVOT不是一个选项。
我建议你在C#中以编程方式转动数据(不要将datagridview与查询数据绑定,将其与空数据表对象绑定并以编程方式填充该数据表)。
稍后添加:
你在评论中询问如何开始。
看看这个:C# pivot table
也许它看起来很复杂,但几乎“随时可以使用”。