2013-04-16 30 views
0

我有兩個表,第一個創建查詢誰添加兩個值時,條件爲真或只得到一個價值

Table1 
ID Name Value start  end   fk_table 
1 edd 3  2013-03-25 2013-05-25  1 
2 tom 3  2013-03-25 2013-05-25  1 
3 emi 3  2013-11-25 2013-25-25  1 

而第二臺

Table2 
ID VALUE 
1 3 

我想從table1的增加價值表2只在啓動時< =日期和時間=>日期 但是如果日期超出範圍我只想從表中獲取值1

假設我們有今天的日期2013年4月16日,該預期的結果是

edd 6 
tom 6 
emi 3 

我使用原則和Symfony2的

回答

1

的解決方案可能取決於你的數據庫引擎,因爲不同引擎提供不同的SQL擴展。您將使用

SELECT Table1.Name, Table1.Value+IF(Table1.start<=? and Table1.end>=?,Table2.VALUE,0) 
FROM Table1 
    INNER JOIN Table2 ON Table1.fk_table=Table2.ID 

for mysql。

您還沒有寫足夠的瞭解您的實體,爲您提供具體的學說代碼,但您可能能夠與

$entityManager->createQuery($sql)->execute(array($dateParam,$dateParam))```. 
+0

謝謝運行此),我要改變這個「CASE」 WhenClause {WhenClause} *「ELSE」標量表達式「END」並且它正在工作 – konadrian

相關問題