2017-10-05 18 views
0

複数の行に1つのユーザーレコードを持つテーブルがあります。誰がPINを変更したのか、誰がPINを変更したのかを調べようとしています。複数のSQLが2つのクエリを実行し、1つの結果の結果を照会します。

私はACCESSにテーブルをインポートしました。私は3つのクエリで探している結果を作成できます。これらの3つのクエリをSQLサーバー上の1つにやり直したいと思います。

クエリ1:

SELECT [dbo].[USER].USERNAME 
FROM [dbo].[USER] 
WHERE [dbo].[USER].SYSTEMNAME NOT LIKE 'DOMAIN/$SPARE' 
    AND [dbo].[USER].TYPE LIKE 'voice' 

クエリ2:

SELECT [dbo].[USER].[USERNAME], [dbo].[USER].[KEYNAME], [dbo].[USER].[STRINGVALUE] 
FROM [dbo].[USER] 
WHERE [dbo].[USER].TYPE = 'PIN_UPDATED') 

第三、最終的な結果が返されますクエリ:UNION、INNER JOINを使用し

SELECT 
    [query1].[USERNAME], [query2].[USERNAME], 
    [query2].[KEYNAME], [query2].[STRINGVALUE] 
FROM 
    [query1] 
LEFT JOIN 
    [query2] ON [query1].USERNAME = [query2].USERNAME 

をし、私が手に他人結果のないさまざまな種類のエラーCTEを使用して、

答えて

0

は、クエリは次のように見て、どのようなエラーが何を知って興味があるが、ここでは一つの潜在的な方法は次のとおりです。

;WITH Query1 AS 
(
    SELECT [USERNAME] 
    FROM [dbo].[USER] 
    WHERE [dbo].[USER].SYSTEMNAME NOT LIKE 'DOMAIN/$SPARE' 
    AND  [dbo].[USER].[TYPE]  LIKE  'voice' 
) 
,Query2 AS 
(
    SELECT [USERNAME]   , 
      [KEYNAME]   , 
      [STRINGVALUE] 
    FROM [dbo].[USER] 
    WHERE [dbo].[USER].[TYPE] = 'PIN_UPDATED' 
) 
SELECT  Q1.[USERNAME]  , 
      Q2.[USERNAME]  , 
      Q2.[KEYNAME]  , 
      Q2.[STRINGVALUE] 
FROM  [Query1] AS Q1 
LEFT JOIN [query2] AS Q2  ON Q1.USERNAME = Q2.USERNAME; 
+0

はあなたのコードが働い – auldh

+0

、あなたにLeonidas199xをありがとう!私の結果を得ましたこれをさらに複数のクエリのテンプレートとして使用します。 – auldh

+0

私は、30日より>時間を追加したいが、私のクエリは、私のクエリを持っているように変更されました – auldh

0
SELECT u1.USERNAME,u2.[KEYNAME], u2.[STRINGVALUE] 
FROM [dbo].[USER] AS u1 
LEFT JOIN [dbo].[USER] AS u2 ON u1.USERNAME=u2.USERNAME AND u2.TYPE Like 'PIN_UPDATED' 
WHERE u1.SYSTEMNAME Not Like 'DOMAIN/$SPARE' AND u1.TYPE Like 'voice' 
関連する問題