0

クエリ

この画像は、2 つのテーブルと出力を含むクエリを示しています。出力が画像の形式である代わりに、次のように必要です。

Date Time   |   Load Cell 0   |   Load Cell 1
----------------------------------------------
03/06/2016         12                14
08/07/2016          4                7

ピボットを使用する必要があるかもしれないと思います???? しかし、私はそれを行う方法にこだわっています。

私は C# Windows フォーム アプリ用に Visual Studio でこれを行っており、データはデータグリッドに表示され、グラフ/チャートに使用されます。使用されるデータベースは、MS SQL CE ファイルです。

誰かが助けることができれば。前もって感謝します。

4

3 に答える 3

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)
于 2012-10-06T20:50:58.133 に答える
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 にピボット演算子があるかどうかはわかりません。t-clausen.dk が提案したように、ネストされたクエリを使用する必要がある場合があります。

于 2012-10-06T20:56:43.647 に答える
0

事前に列名がわからない場合-あなたの場合、SQLのPIVOTはオプションではありません。

そのデータをC#でプログラム的にピボットすることをお勧めします(datagridviewをクエリデータにバインドし、空のデータテーブルオブジェクトにバインドして、そのデータテーブルをプログラムで埋めないでください)。

後で追加:

コメントで開始方法を尋ねました。

これを見てください: C# ピボット テーブル

複雑に見えるかもしれませんが、ほとんど「すぐに使える」状態です。

于 2012-10-06T22:29:38.563 に答える