0

同様の質問を見たことがありますが、この問題の解決策を見つけることができません。質問がそうであるように、テーブルの混乱に耐えますか?かなり簡単です。

次の表があります。

LDTime                      Value
2013-07-24 00:00:00.000     14.85
2013-07-24 00:00:00.000     1.339
2013-07-24 00:15:00.000     95.9
2013-07-24 00:15:00.000     1.285
2013-07-24 00:30:00.000     160
2013-07-24 00:30:00.000     0.952

行 1、3、および 5 は 1 つのタイプのデータです。2、4、および 6 は別のタイプです。フィルター基準に基づいてタイプを取得できる次のクエリがあります。

SELECT 
    A.LDTime, A.Value As AValue
FROM      
    Table7 G 
INNER JOIN
     Table1 A 
INNER JOIN
     Table2 B ON A.DataSetIdx = B.DataSetIdx 
INNER JOIN
     Table3 C ON B.RetrievalIdx = C.RetrievalIdx ON G.ActionIdx = C.ActionIdx 
INNER JOIN
     Table4 D ON G.SpatialRefIdx = D.SpatialRefIdx 
INNER JOIN
     Table5 E 
INNER JOIN
     Table6 F ON E.StationIdx = F.StationIDx ON D.SpatialRefIdx = E.SpatialRefIdx
WHERE 
     F.StationIDx = 1 
     AND A.ParameterIdx = 18
     AND A.LDTime BETWEEN '2013-7-24' AND '2013-7-25'
ORDER 
     BY A.LDTime


SELECT 
    A.LDTime, A.Value As BValue
FROM
    Table7 G 
INNER JOIN
    Table1 A 
INNER JOIN
    Table2 B ON A.DataSetIdx = B.DataSetIdx 
INNER JOIN
    Table3 C ON B.RetrievalIdx = C.RetrievalIdx ON G.ActionIdx = C.ActionIdx 
INNER JOIN
    Table4 D ON G.SpatialRefIdx = D.SpatialRefIdx 
INNER JOIN
    Table5 E 
INNER JOIN
    Table6 F ON E.StationIdx = F.StationIDx ON D.SpatialRefIdx = E.SpatialRefIdx
WHERE 
    F.StationIDx = 1 
    AND A.ParameterIdx = 19
    AND A.LDTime BETWEEN '2013-7-24' AND '2013-7-25'
ORDER BY 
     A.LDTime

2 つのクエリ間で 1 つのフィルター変数 ( ParameterIdx) のみを変更することに注意してください。これにより、値列に格納されるデータの種類が区別されます。

クエリを組み合わせて 1 つの結果セットを生成するにはどうすればよいですか? (または、ストアド プロシージャを使用しているため、これは複数のクエリで実行できます)。

LDTime                      AValue   BValue
2013-07-24 00:00:00.000     14.85    1.339
2013-07-24 00:15:00.000     95.9     1.285
2013-07-24 00:30:00.000     160      0.952
4

2 に答える 2