2013-01-10 73 views
0

我正在使用Pentaho勺子做一些轉換。我正在使用「表格輸入」並加入多個表格以獲得最終輸出表格。Pentaho Kettle勺子日期操作

我需要實現:

SELECT COUNT(distinct ID) 
FROM TBLA join TBLB ON TBLA.ID=TBLB.ID 
WHERE 
    TBLA.ID=334 
    AND TBLA.date = '2013-1-9' 
    AND TBLB.date BETWEEN '2012-11-15' AND '2013-1-9'; 

我手動插入「2012年11月15日」,但我使用Get System Data插入「2012-1-9」。我正在使用1 Get System Data

我的查詢是:

SELECT COUNT(distinct ID) 
FROM TBLA join TBLB ON TBLA.ID=TBLB.ID 
WHERE 
    TBLA.ID=334 
    AND TBLA.date='?' 
    AND TBLB.date BETWEEN '2012-11-15' AND '?'; 

我在表輸入得到錯誤信息說No value specified for parameter 2

任何建議將不勝感激。

謝謝。

回答

0

簡單一個這個;您需要「複製」系統日期。因此,在「獲取系統數據」(稱爲「date2」)或其他內容中添加另一行,使其與第一行相同,然後填寫第二個參數或?

或者乾脆更改查詢「2012年11月15日」之間的話和TBLA.date 然後你不需要第二個參數

+0

謝謝你的回覆。在「獲取系統數據」步驟中,我所看到的是固定日期選項,例如昨天日期,今天日期等。如何輸入我自己的手動日期,如「2012-12-3」或「2012-12-4」等等作爲查詢的輸入日期? – Mario

+0

只需使用「添加常量」步驟即可。 – Codek

+0

我刪除了「獲取系統信息」步驟,並直接用「添加常量」步驟提供表格。所以基本上我的表格只能從 獲得輸入,只需在名稱中添加常量步驟爲Date1輸入爲日期格式爲'yyyy-MM-dd'並且值爲'2013-01-01'。 2013-01-01應該從TableA替換查詢日期的選擇ID where date =?; 但是當我運行轉換時,在輸出中看不到任何東西。任何建議? 另外我的一個查詢就像'從表A中選擇ID之間的日期?和?'還有什麼建議? 非常感謝。 – Mario

0

我個人比較喜歡的一個獲取系統信息/添加常數一步模式創建一個包含多個列的行,並將其添加到數據庫連接步驟中。然後,用列而不是行替換查詢中的參數,並且可以多次指定列。