1

私は少し立ち往生しています。次の列を持つデータベース テーブルがあります。

Table Name: Data
*Value
*DateTime
*WeekNumber
*ItemId
*Name

上記の表に結果を配置したい次のスクリプトを作成しました。

SELECT D.*, M.Name
FROM
(SELECT SUM (Data) AS [Value],
(SELECT CONVERT(Date,DATEADD(week,-1,GETDATE()))) [DateTimeValue], DatePart (Week,TimestampUTC) [WeekNumber], MT.MeterId [MeterID]

FROM DataLog.dl
JOIN MeterTags mt ON dl.MeterTagId = mt.MeterTagId
GROUP BY DatePart (Week,TimestampUTC, dl.MeterTagId, MeterId)
AS D
INNER JOIN Meters m
ON D.MeterId = M.MeterId
ORDER BY MeterId DESC

上記のクエリの結果を db テーブルの対応する列にドロップし、MeterID 用に新しいテーブルを作成したいと考えています。

Value = Value
DateTime = DateTimeValue
WeekNumber = WeekNumber
MeterID = ***Need to create a new column*****
Name = Name

私は SQL の経験がほとんどなく、最後のピースをまとめるのに苦労しているので、これが理にかなっていることを願っています。あなたが与えることができるどんな助けも大歓迎です.

ありがとう。

4

2 に答える 2

0

INSERT標準の SQL構文 INSERT INTO table2 SELECT * FROM table1;を使用できます。

私が理解していないのは、あなたが何を意味するのかということです

MeterID =新しい列を作成する必要があります**

詳細については 、 http://www.w3schools.com/sql/sql_insert_into_select.aspおよび http://msdn.microsoft.com/en-us/library/ms188263(v=sql.105).aspxを参照してください。

于 2013-07-03T16:44:31.443 に答える
0

テーブルを変更し、MeterId の新しい列を追加します。

Insert into [Data]
SELECT D.[Value], D.DateTimeValue,D.WeekNumber,MT.MeterId,M.Name
FROM
(SELECT SUM (Data) AS [Value],
(SELECT CONVERT(Date,DATEADD(week,-1,GETDATE()))) [DateTimeValue], DatePart (Week,TimestampUTC) [WeekNumber], MT.MeterId [MeterID]

FROM DataLog.dl
JOIN MeterTags mt ON dl.MeterTagId = mt.MeterTagId
GROUP BY DatePart (Week,TimestampUTC, dl.MeterTagId, MeterId)
AS D
INNER JOIN Meters m
ON D.MeterId = M.MeterId
ORDER BY MeterId DESC
于 2013-07-03T16:52:53.257 に答える