2012-11-26 47 views
1

好的,我想比較兩個表,然後從三分之一的名稱中輸入一個列表以產生前10天的總計值。查詢運行,但給我一個NULL結果,只有一個結果。如果我刪除DATE_ADD,並用數據庫中的實際日期替換它,併爲左邊的子句輸入一個值,而不是使用子查詢,那麼我會得到我正在查找的特定日期。我想要做的是創建一個名稱與當天和過去10天的值列表。我相信我沒有這樣做,所以任何幫助,我很欣賞,因爲我對此很新。簡單的查詢很容易,但把這些複雜的東西放到我這裏來說是新的。MYSQL內部加入&從子查詢中獲得價值

select sum(t.price) from td.trs as t 
inner join td.order as o on o.trsid=t.id 
inner join pts.product as p on p.id=o.grp_id 
where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY) 
and left(t.mfgid,3) IN (select name from name.list); 
+1

爲什麼在標題中出現「左連接」?查詢中沒有'LEFT JOIN'。 –

回答

1

變化

where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY) 

where t.invoice_date >= DATE_ADD(CURRENT_DATE(),INTERVAL -10 DAY) 
+0

在總結總結中做了詭計!非常感謝!是否有可能讓它按名稱和名稱劃分出來,或者我過多了?理想情況下,它會向我顯示IN子句中的名稱,並列出該名稱和日期的細目,但是在我的代碼上猜測我不在我需要的地方。 – MykMac

+0

我不知道你試圖達到什麼目的。最好問一個新問題(因爲這超出了當前的問題),並詳細解釋你想要什麼。請將相關的表格結構和示例數據添加到您的新問題中。如果你真的想快速回答,請提供一個[SQLFiddle](http://sqlfiddle.com)的例子。 –

+0

我當然可以和我欣賞它!我會繼續發佈另一個問題。乾杯! – MykMac

0

你可能沒有得到任何結果,因爲你正在做DATE_ADDCURRENT_DATE(),這將給你一個日期,今後10天。如果您想獲得最近10天的所有物品,請使用

WHERE t.invoice_date BETWEEN CURRENT_DATE() AND DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)