1

2 つのクエリを結合しようとしています。2 つのクエリは別々に適切に機能します。クエリ 2 からクエリ 1 で動作する CASE ステートメントを取得しました。

背景として、このクエリは、自動実行挿入からグラフ/チャートを作成するビジネス インテリジェンス プログラムに対して実行されています。現在、特定の IM.NAME のテーブルに新しいデータが挿入されていない場合、プログラムは最後のレコードを参照するため、グラフの結果が歪められます。以下のマスター クエリに基づいて、5 つの IM.NAME フィールドのいずれかが返されない場合、出力するために「1」が必要です。2 番目のクエリの動作を示す SQLfiddle を含めました: http://sqlfiddle.com/#!3/2cdbd/1

SELECT DISTINCT 
SA.DELETED,
PAT.VERSION, 
PAT.PATTERNDATE,
SA.AGENT_VERSION,
SCL.COMPUTER_NAME AS Computer_Name,
SCO.OPERATION_SYSTEM AS Operation_System,
dateadd(s,convert(bigint,SA.CREATION_TIME)/1000,
'01-01-1970 00:00:00') CREATION_DTTM,
dateadd(s,convert(bigint,SA.LAST_UPDATE_TIME)/1000,
'01-01-1970  00:00:00')  Lastupdatetime,
DATEADD(s, convert(bigint,LAST_SCAN_TIME)/1000,
'01-01-1970 00:00:00')LAST_SCAN_TIME,
PAT.PATTERNDATE AS Pattern_Date,
SCL.USER_NAME AS User_Name,
VSC.IP_ADDR1_TEXT AS IP_Add,
CASE WHEN IM.NAME LIKE  '%-FRN%' THEN IM.NAME
WHEN IM.NAME LIKE '%-BCK%' THEN IM.NAME
WHEN IM.NAME LIKE  '%-PPP%' THEN IM.NAME
WHEN IM.NAME LIKE '%-MES%' THEN IM.NAME
WHEN IM.NAME LIKE  '%-MMT%' THEN IM.NAME
 ELSE '1' END AS Group_Name,
 IM.NAME as test


FROM ((((SEM_AGENT SA

INNER JOIN SEM_CLIENT SCL
ON ((SA.COMPUTER_ID=SCL.COMPUTER_ID) 
AND (SA.DOMAIN_ID=SCL.DOMAIN_ID)) 
AND (SA.GROUP_ID=SCL.GROUP_ID)) 

INNER JOIN SEM_COMPUTER   SCO
ON ((SA.COMPUTER_ID=SCO.COMPUTER_ID) 
AND (SA.DOMAIN_ID=SCO.DOMAIN_ID)) 
AND (SA.DELETED=SCO.DELETED))

INNER JOIN PATTERN PAT 
ON SA.PATTERN_IDX=PAT.PATTERN_IDX) 
INNER JOIN IDENTITY_MAP IM 
ON SCL.GROUP_ID=IM.ID) 

INNER JOIN V_SEM_COMPUTER VSC 
ON SCO.COMPUTER_ID=VSC.COMPUTER_ID 
AND SA.DELETED=0


WHERE PAT.Patterndate < (SELECT MAX(Patterndate) -1 FROM Pattern)
AND SCO.OPERATION_SYSTEM NOT LIKE '%2000%'
ORDER BY Computer_Name





Select (CASE WHEN IM.NAME LIKE  '%-FRN%' THEN IM.NAME
  WHEN IM.NAME LIKE '%-BCK%' THEN IM.NAME
  WHEN IM.NAME LIKE  '%-PPP%' THEN IM.NAME
  WHEN IM.NAME LIKE '%-MES%' THEN IM.NAME
  WHEN IM.NAME LIKE  '%-MMT%' THEN IM.NAME
  ELSE '1' END) AS Group_Name,
   tagTypes.tagType,
   IM.NAME 

From
(
Select '%-FRN%' AS tagType
UNION
Select '%-BCK%' AS tagType
UNION
Select '%-PPP%' AS tagType
UNION
Select '%-MES%' AS tagType
UNION
Select '%-MMT%' AS tagType
)     AS tagTypes
left join
IDENTITY_MAP IM 
    on IM.NAME like tagTypes.tagType
4

0 に答える 0