0

組み合わせる必要のある2つの選択クエリがあります。

  SELECT [DatapointID]
  ,[AssetID]
  ,[DatapointID]
  ,[SourceTag]
  ,'-' + [TimeStep] + [TimeStepValue] AS TimeStep
  ,[DataRetrievalInterval] + [DataRetrievalIntervalValue] AS [RetInterval]
  ,NULL AS DatapointDate
  ,NULL AS DatapointValue
  ,0 As DataFlagID
  ,DateADD(-1, d @SearchDateEnd) + @SearchTimeEnd DateDataGrabbed
  ,GetDate() DateTimeAddedtoDB
FROM [dbo].[tblTSS_Assets_Datapoints]
Where AssetID = 204     


Select DatapointDate, SUM(DataPointValue) as DataPointValue From @temp
GROUP BY DatapointDate
ORDER BY DatapointDate

最初の選択クエリは、最終結果をNULLではなくしたいものです。DatapointDateおよびDatapointValueとして、@tempからの値が必要です。

これどうやってするの?

4

1 に答える 1

1

結合は、2つのテーブルの値を結合します。この場合、明確な結合キーがないため、相互結合があります。

SELECT [DatapointID], [AssetID], [DatapointID], [SourceTag],
       '-' + [TimeStep] + [TimeStepValue] AS TimeStep,
       [DataRetrievalInterval] + [DataRetrievalIntervalValue] AS [RetInterval],
       d.DatePointDate, d.DatapointValue,
       0 As DataFlagID,
       DateADD(-1, d @SearchDateEnd) + @SearchTimeEnd DateDataGrabbed,
       GetDate() DateTimeAddedtoDB
FROM [dbo].[tblTSS_Assets_Datapoints] cross join
     (Select DatapointDate, SUM(DataPointValue) as DataPointValue From @temp
      GROUP BY DatapointDate
     ) d
Where AssetID = 204  

ただし、これにより行数が倍増し、日付ごとに1つになります。行の1つを選択するための特定のルールはありますか?

于 2012-10-05T17:35:06.587 に答える