2013-07-17 133 views
0

我對Cognos有一個奇怪的問題。你可以看到這個問題下面的圖片中:Cognos正在總結措施

List result

每個Credit Alert可以有與之關聯的單個調整。但金額通常在數百或數千。但顯然我們只是總結了所有的Adjustment Amounts

下面我在建模層中附加了Cognos Framework Manager模型(large image link)。正如你所看到的F_CREDIT_ALERT有鏈接到D_INVOICE_ADJ其鏈接到F_INVOICE_ADJ(它有措施Request AmountGST這是用來創建Adjustment Amount ex GST)。

Cognos Framework Manager model

這個問題的任何幫助將是非常讚賞。此外,關於該模型的任何一般提示/評論也會有幫助。

感謝

回答

0

首先,生成報告Studio中的SQL,看看發生了什麼(工具 - >顯示生成的SQL)。這會給我們一個很好的想法。

可能,這是模型中的循環連接問題。意思是,Cognos從F_CREDIT_ALERT到F_INVOICE_ADJ有多條路徑(通過D_INVOICE_ADJ或D_SNAPSHOT_DATE)。這也存在於多個地方。 Cognos在決定哪條路徑時並不聰明;在最長的時間裏,它只是首先按字母順序排列(可能還是這樣,但是我很久以前還沒有這種類型的連接模型)。您需要對此進行建模 - 一種方法是創建一些對象的多個實例,例如D_SNAPSHOT_DATE。

您是否計劃在Query Studio中提供此功能?我預見了給定多個事實表和循環聯接的主要聚合問題。您可能需要用簡單的星型模式創建更小的集市。一些建模行爲可能更容易通過創建SQL視圖進行處理,這些視圖以適當的聚合級別進行連接。

我去年寫了這彌補我們的一些新的開發者,也可能是一些幫助,如果你想創建一個強大的,成熟的模式:http://therealtoddnappi.blogspot.com/2012/07/cognos-modeling-guidelines-and-standards.html

+0

感謝您的答覆。我從模型中刪除了循環連接。基本上,如果我運行一個測試,從'F_INVOICE_ADJ'中選擇'Request Amount',並從'F_CREDIT_ALERT'中選擇FACT_LKUP_KEY,它可以正常工作。當我點擊「自動總和」時,它會將查詢更改爲交叉連接。交叉連接SQL:http://pastebin.com/njVtyhFb – mlevit

+0

這可能是由於F_INVOICE_ADJ和F_CREDIT_ALERT之間的基數爲1..N而導致的。 Cognos可能無法正確解釋這一點。創建視圖的另一種方法是將查詢主題合併在一起以創建虛擬星型模式。我不確定這對您的數據是否合理,但這是一種常用技術。例如,首先將F_INVOICE_ADJ連接到D_INVOICE_ADJ,創建一個新的QS,然後將其連接到F_CREDIT_ALERT。在這兩種技術之間,你應該能夠正確控制基數。 – toddsonofodin