0

日付と時刻の変数を数値からより使いやすい出力に変換する複雑なクエリが 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でエラーなしで実行される複合クエリを探しているだけです。

4

3 に答える 3

0

UNION または UNION ALL がこの問題に適していると思います:

http://www.w3schools.com/sql/sql_union.asp

一番

于 2013-08-13T19:17:42.893 に答える