2013-04-28 63 views
-4

可以說我有這樣的表。表名:日誌SQL相關字段和副本

id time prod stan amt 
1 02:01 10  445 22 
2 05:33 02  446 56 
3 02:02 10  447 22 
4 20:40 55  448 88 

我想輸出

id time prod stan amt 
1 02:01 10  445 22 
3 02:02 10  447 22 

這是我AVE試圖

SELECT time, prod, stan, amt 
FROM Logs 
GROUP BY time, prod, stan, amt 
HAVING (COUNT(prod) > 1 AND COUNT(amt) > 1) 

這裏相同的值將是督促和AMT。我希望所有的記錄,因爲斯坦是不同 複製不起作用 任何人都可以使用SQL查詢

+4

您是否嘗試過任何一種功能?當你有問題時,我們會幫助你,而不是當你有需求時。 =) – 2013-04-28 11:41:26

+2

另外,目前還不清楚獲得該輸出的標準是什麼。 – 2013-04-28 11:42:34

+0

他可以嘗試使用'SELECT * FROM日誌WHERE AMT = 22' – rekire 2013-04-28 11:44:32

回答

0

幫助試試這個SQL statment:

SELECT * FROM Logs l JOIN (
    SELECT prod, amt 
    FROM Logs 
    WHERE time between '02:00' and '06:00' 
    GROUP BY prod, amt 
    HAVING count(*)>1 
) tmp 
ON tmp.prod=l.prod AND tmp.amt=l.amt 
WHERE time between '02:00' and '06:00' 

我增加了一些更多的行檢查是否有不相關的行將被添加。

另請參閱此演示:http://sqlfiddle.com/#!2/ca583/2/0

+0

多數民衆贊成好。我可以限制它的時間像02:00至06:00 這是行不通的 選擇*從日誌 其中'02:00'和'06:00'之間的時間l JOIN( SELECT prod,amt (*)> 1)tmp ON tmp.prod = l.prod AND tmp.amt = l.amt – chaos 2013-04-28 13:00:06

+0

好的。我會更新我的答案。 – rekire 2013-04-28 13:04:11

+0

我想我明白了..它應該在最後,對吧? 好的。我會檢查你的! – chaos 2013-04-28 13:22:18