2012-12-31 88 views
1

我有這樣的查詢:循環中燒水壺/勺/ Pentaho的

SELECT count(distinct ID) FROM TBLC WHERE date BETWEEN ? AND ?; 

我使用Pentaho的勺子。我正在使用'執行SQL腳本'/語句。我看到的選項是每行執行,作爲單個語句和變量替換執行。

如果我需要更改我的查詢或需要執行其他步驟,請回復。

編輯:

我使用一個Pentaho勺將數據從數據庫Infobright的(表1,表2),以Infobright的數據庫(表3)傳輸。

查詢類似於:

SELECT table1.column1, table2.column2 
FROM table1 JOIN table2 ON table1.id=table2.id 
WHERE table2.date BETWEEN '2012-12-01' AND '2012-12-30' 

我想辦法讓我不用每次我運行轉換的時間來手動指定的時間範圍。我想自動化日期範圍。

在此先感謝。

+1

你能描述一下你正在試圖做些什麼嗎?我真的不清楚你想要做什麼或者問題是什麼。 –

+0

我編輯了我的問題。謝謝。 – Mario

回答

2

根據您所描述的內容,我相信您可以使用生成行步驟將行注入到包含所需日期的流中,然後爲流中的每個日期行生成所需查詢從源表中獲取所需的所有行。

-1

我猜日期是在一個表或數據庫中的文件 你可以做的是: 創建一個工作,獲得這些參數的蒸汽和設置變量。 在接下來的工作,你可以使用{date_from} {日期}

這樣每次運行作業時需要什麼數據庫 內使用它們作爲變量來查詢你當然需要更新date_from和date_to

0

您可以將execute用作單個語句和變量替換,因爲它們最適合您的用例。

將參數StartDate和EndDate添加到您的轉換中,並在您的查詢中使用它們,如下所示。在步驟Execute SQL Script中啓用「可變取代」。

SELECT table1.column1, table2.column2 
FROM table1 JOIN table2 ON table1.id=table2.id 
WHERE table2.date BETWEEN **$StartDate** AND **$EndDate** 

在執行轉換時提供StartDate和EndDate的值。