因此,我有一個交叉表來衡量單個工廠花費的小時數。我們的行分開工作時間的任務類型,列分離工作小時的設施。在Cognos/SQL中將具有類似度量的列結合在交叉表中
我的問題是,在我們的數據庫中,我們有2個設施級別。每個1級設施下面都有10個2級「兒童」系統。我們想要的是能夠將所有二級設施欄的數據轉移到其各自的一級設施家長。
我已經在下面包含了一個例子。第一個t̶a̶b̶l̶e̶交叉表是我擁有的交叉表,我想要到第二個t̶a̶b̶l̶e̶交叉表。
所以在我們的系統中「父」與「子」設施,通過一個名爲OBJ_PARENT場相連。每個「子」在OBJ_PARENT中都有其「父」的名稱。
我會根據請求給出我寫的SQL。
編輯:我在下面提供
select EVT_WORKORDER, EVT_DEPARTMENT, EVT_WOSTATUS, EVT_WOTYPE, EVT_FACILITY, OBJ_FACILITY, OBJ_PMD, OBJ_PARENT, BOO_HOURS, BOO_DATE, BOO_ENTERED, BOO_ACTIVITY, BOO_PERSON, ACT_ACTIVITY, ACT_TASK, ACT_WORKORDER, PRV_CODE, PRV_PROPERTY, PRV_VALUE,
sum(case when boo_person <> 'UNPAID' then boo_hours else 0 end) "Paid Hours",
sum(boo_hours) "All Hours"
FROM R5EVENTS
JOIN R5OBJECTS ON EVT_FACILITY = OBJ_FACILITY
JOIN R5BOOKEDHOURS ON BOO_EVENT = EVT_WORKORDER
join R5ACTIVITIES on EVT_WORKORDER = ACT_WORKORDER
JOIN r5propertyvalues ON (ACT_TASK || '#0' = PRV_CODE)
where prv_property = 'CORESRV'
and ACT_ACTIVITY= BOO_ACTIVITY
AND EVT_DEPARTMENT = 'PK-MAINT'
AND EVT_WOTYPE IN ('JOB', 'PPM')
AND EVT_WOSTATUS IN ('R', 'FC', 'C', 'H', 'FI', 'CI', 'AP', 'IP', 'DF')
and OBJ_PMD in (#PROMPTMANY ('PMD')#)
and (OBJ_FACILITY in (#PROMPTMANY ('Park')#)
OR
OBJ_PARENT in (SELECT OBJ_FACILITY from R5OBJECTS where OBJ_FACILITY in (#PROMPTMANY ('Park')#)))
group by EVT_WORKORDER, EVT_DEPARTMENT, EVT_WOSTATUS, EVT_WOTYPE, EVT_FACILITY, OBJ_FACILITY, OBJ_PMD, OBJ_PARENT, BOO_HOURS, BOO_DATE, BOO_ENTERED, BOO_ACTIVITY, BOO_PERSON, ACT_ACTIVITY, ACT_TASK, ACT_WORKORDER, PRV_CODE, PRV_PROPERTY, PRV_VALUE
BOO我目前的SQL表示 「預訂」
如果您的表在數據庫中看起來像這樣,您需要閱讀規範化。 – Kermit