[英]Oracle SQL - Sub-queries
我在EM中做報告,我需要弄清楚這里的東西
我有這個查詢:
SELECT
*
FROM
(
SELECT DISTINCT
patch.host as "PHost",
patch.home_location as "PDirectory",
patch.home_name as "PHome",
MAX(patch.INSTALLATION_TIME) as "Patched (Date)",
MAX(patch.PATCH_RELEASE) as "PVersion",
listagg(patch,',') WITHIN GROUP (ORDER BY patch) "Patches"
FROM
mgmt$applied_patches patch
GROUP BY patch.host, patch.home_location,patch.home_name
ORDER BY patch.host, patch.home_location
) "PCH",
(
SELECT DISTINCT
T1.PROPERTY_VALUE as "MHost",
T2.PROPERTY_VALUE as "MDirectory",
T3.PROPERTY_VALUE as "MVersion",
count(T4.PROPERTY_VALUE) as "Count of SID",
listagg(T4.PROPERTY_VALUE,',') WITHIN GROUP (ORDER BY T4.PROPERTY_VALUE) as "SID"
FROM
MGMT$TARGET_PROPERTIES T1,
MGMT$TARGET_PROPERTIES T2,
MGMT$TARGET_PROPERTIES T3,
MGMT$TARGET_PROPERTIES T4
WHERE
T1.TARGET_GUID = T2.TARGET_GUID
and T1.TARGET_GUID = T3.TARGET_GUID
and T1.TARGET_GUID = T4.TARGET_GUID
and T1.PROPERTY_NAME = 'MachineName'
and T2.PROPERTY_NAME = 'OracleHome'
and T3.PROPERTY_NAME = 'Version'
and T4.PROPERTY_NAME = 'SID'
GROUP BY T1.PROPERTY_VALUE, T2.PROPERTY_VALUE, T3.PROPERTY_VALUE
) "MGM"
WHERE
PDirectory = MDirectory
我收到錯誤ORA-00904:“ MDIRECTORY”:..
我嘗試了很多組合! (PCH.PDirectory = MGM.MDirectory,......)無效
干杯
Oracle中的大小寫混合名稱令人討厭,您剛剛被它們咬了。
采用:
"PDirectory" = "MDirectory"
..或更好的是不要使用需要引用的特殊名稱。
好...
這不起作用:
SELECT * FROM
(SELECT DUMMY AS "PDirectory" FROM DUAL) "PCH",
(SELECT DUMMY AS "MDirectory" FROM DUAL) "MGR"
WHERE PDIRECTORY = MDIRECTORY
但這有效:
SELECT * FROM
(SELECT DUMMY AS "PDirectory" FROM DUAL) "PCH",
(SELECT DUMMY AS "MDirectory" FROM DUAL) "MGR"
where "PCH"."PDirectory" = "MGR"."MDirectory"
相應地更改查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.