日付と時刻の変数を数値からより使いやすい出力に変換する複雑なクエリが 1 つあり、2 つのテーブル間の単純な結合である 2 つ目の SQL クエリがあります。これら 2 つの SQL クエリを 1 つに結合して、すべての情報に効率的にアクセスできるようにしようとしています。
これは私の最初のクエリです:
Select * from Media
join (SELECT convert(date,
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3)))) [Date],
convert(varchar(8), convert(time,
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))))) [Time],
[Object] AS [Dataset],
SUBSTRING(Parms,1,6) AS [Media]
FROM (Select CONVERT(VARCHAR(18),[Date]) [Date],
[Object],
MsgId,
Parms
FROM JnlDataSection) A
Where MsgID = '325' AND
SUBSTRING(Parms,1,6) like 'V754%') b on Media.SerialNum = b.Media order by Date Desc, Time Desc
これは私の2番目のクエリです:
SELECT SerialNum, m.MediaId, n.Note as Note
from Media m join Note n on (m.NoteId = n.NoteId)
where SerialNum like 'V754%';
私が試したこと:
Select * m.MediaId, n.Note as Note from Media m join Note n on (m.NoteId = n.NoteId)
join (SELECT convert(date,
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3)))) [Date],
convert(varchar(8), convert(time,
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))))) [Time],
[Object] AS [Dataset],
SUBSTRING(Parms,1,6) AS [Media]
FROM (Select CONVERT(VARCHAR(18),[Date]) [Date],
[Object],
MsgId,
Parms
FROM JnlDataSection) A
Where MsgID = '325' AND
SUBSTRING(Parms,1,6) like 'V754%') b on Media.SerialNum = b.Media order by Date Desc, Time Desc
しかし、これは私にこのエラーを与えています:
メッセージ 102、レベル 15、状態 1、行 1
'm' 付近の構文が正しくありません。
メッセージ 102、レベル 15、状態 1、行 22
'b' 付近の構文が正しくありません。
SQL Server 2008 Management Studio を使用していることに注意してください。また、クエリの列またはデータ操作を変更することに興味はありません。これは、既に私のニーズに適切に適合しているためです。SQLでエラーなしで実行される複合クエリを探しているだけです。