私は2つのselectステートメントを持っています。過去60秒間に記録された電圧データのリスト(もしあれば)および関連するチャンバ名を取得し、過去5分間に記録されたアークイベントデータのリスト(もしあれば)を取得する。アークカウントデータを新しい列として電圧データテーブルに追加しようとしています。私はこれを行う方法を理解することはできません。SQLユニオン/ジョイント/交差複数選択ステートメント
電圧データテーブルにある所与のチャンバ名に対して、アークカウント行が存在してもいなくてもよいことに留意されたい。行がない場合は、円弧数の列の値をゼロに設定する必要があります。
これを達成するためのアイデアはありますか?
電圧データ:
SELECT DISTINCT dbo.CoatingChambers.Name,
AVG(dbo.CoatingGridVoltage_Data.ChanA_DCVolts) AS ChanADC,
AVG(dbo.CoatingGridVoltage_Data.ChanB_DCVolts) AS ChanBDC,
AVG(dbo.CoatingGridVoltage_Data.ChanA_RFVolts) AS ChanARF,
AVG(dbo.CoatingGridVoltage_Data.ChanB_RFVolts) AS ChanBRF FROM
dbo.CoatingGridVoltage_Data LEFT OUTER JOIN dbo.CoatingChambers ON
dbo.CoatingGridVoltage_Data.CoatingChambersID =
dbo.CoatingChambers.CoatingChambersID WHERE
(dbo.CoatingGridVoltage_Data.DT > DATEADD(second, - 60,
SYSUTCDATETIME())) GROUP BY dbo.CoatingChambers.Name
戻り
Name | ChanADC | ChanBDC | ChanARF | ChanBRF
-----+-------------------+--------------------+---------------------+------------------
OX2 | 2.9099999666214 | -0.485000004371007 | 0.344801843166351 | 0.49748428662618
S2 | 0.100000001490116 | -0.800000016887983 | 0.00690172302226226 | 0.700591623783112
S3 | 4.25666658083598 | 0.5 | 0.96554297208786 | 0.134956782062848
アークカウントテーブル:
SELECT CoatingChambers.Name,
SUM(ArcCount) as ArcCount
FROM CoatingChambers
LEFT JOIN CoatingArc_Data
ON dbo.[CoatingArc_Data].CoatingChambersID = dbo.CoatingChambers.CoatingChambersID
where EventDT > DATEADD(mi,-5, GETDATE())
Group by Name
戻り
Name | ArcCount
-----+---------
L1 | 283
L4 | 0
L6 | 1
S2 | 55
明確にするために、私はこのテーブルをしたい(追加されたアークでカラムをカウント)、上記の二つのテーブル与えられた:
Name | ChanADC | ChanBDC | ChanARF | ChanBRF | ArcCount
-----+-------------------+--------------------+---------------------+-------------------+---------
OX2 | 2.9099999666214 | -0.485000004371007 | 0.344801843166351 | 0.49748428662618 | 0
S2 | 0.100000001490116 | -0.800000016887983 | 0.00690172302226226 | 0.700591623783112 | 55
S3 | 4.25666658083598 | 0.5 | 0.96554297208786 | 0.134956782062848 | 0
あなたのお時間をありがとうございます。 isnull()は私にとっては新しいものです。私は何とか仮想テーブルに参加しようとしたときに失敗しました... –
喜んで助けてください:-) – Clay