我碰到的嘗試寫一些SQL的MS Access將分析一些數據在我希望的方式向下一個問題。雖然我承認新的(或仍然在學習超出了大專班我花了五年前的邊界)與問候到SQL,我想,認爲我想要做的可以完成。訪問SQL條件分句多個條件/記錄欄一樣
場景: 雖然我可能沒有開始這個所有有效下手的,我開始和兩個表。原始數據集從72K記錄開始。
這個目標,或者我在這個案子中想要達到的目標是找到某個人出現多於一個指控的所有記錄,然而定義爲擁有0分的指控的結果是有罪的,但是其他費用被發現NG或解僱。
這是我到目前爲止。我開始使用的數據來自兩個表格,一個包含外觀,一個包含代碼和點。
的外觀的一個例子是類似以下內容:
APP DATE CHARGE OUTCOME
===================================
1 1/1/2014 137 GT
2 1/5/2014 122 GT
2 1/5/2014 123 DI
3 1/6/2014 257 DI
3 1/6/2014 257 DI
4 1/6/2014 137 NG
4 1/6/2014 123 DI
4 1/6/2014 122 GT
我該鏈接的費用,與充電相關的積分潛在數量第二個表,非常簡單的格式有
CHARGE POINT
===============
122 0
123 2
137 2
257 0
所以我設計了幾個基本的查詢,因爲我主要是基於這是給我提供了大量的數據文件中的填空。第一個拉着加入了前兩個表一起,所以我留下了看上去沿東西線的表:
APP DATE CHARGE OUTCOME POINTS
==========================================
1 1/1/2014 137 GT 2
2 1/5/2014 122 GT 0
2 1/5/2014 123 DI 2
3 1/6/2014 257 DI 0
3 1/6/2014 257 DI 0
4 1/6/2014 137 NG 2
4 1/6/2014 123 DI 2
4 1/6/2014 122 GT 0
然後我創建了各自三個小的查詢要求出示數據從一個子集主查詢,一個用於觀察= GT,點= 0,另一個用於結果= NG,積分> 2,最後結果= DI,積分> 2。查詢中的每一個被稱爲帶來由原來的72K設置到39K記錄生成表查詢。應用另一個查詢
Select * from record_set Where RecordID IN
(Select RecordID from record_Set
GROUP BY RecordID
HAVING COUNT (*) > 1))
最終帶來了總計下降到不到21K。
我的問題是這樣的: 我想回需要進一步過濾結果的數據集。目前我還沒有想出如何剔除其中兩個值都爲0。據我所知,我應該走近這個一個完全不同的方式APP值。
編輯: 我要尋找的是返回到看起來像這樣的數據集:
APP DATE CHARGE OUTCOME POINTS
==========================================
2 1/5/2014 122 GT 0
2 1/5/2014 123 DI 2
4 1/6/2014 137 NG 2
4 1/6/2014 123 DI 2
4 1/6/2014 122 GT 0
當單個記錄被拔掉,並且其中結果是DI/0,所有的APP涉及的費用。
我一直在使用一個簡單的WHERE子句僅分析記錄單值試圖目前嘗試。我想我正在尋找一種方法來評估兩者。也許,如果我寫的價值單獨的臨時表,然後做了工會只對出現的兩個表中的APP值會更容易?
任何幫助或指導將不勝感激!
對不起,我清理了我的問題,以便更清楚一點。我想要做的是清除所有記錄中包含僅爲0的點值的實例。因此,如果某人有5條記錄,我需要能夠將它們與自己進行比較。 – dramerus
到目前爲止我唯一的想法就是解決這個問題,如下所示:分開收費/應用程序組合,這些收費/應用程序組合不包含點數。生成一個適用APP的列表,然後在兩個表格之間進行比較。如果兩者都不出現,那麼它將不被包括在內....也許?想法? – dramerus
我仍然有點困惑 - 用你的邏輯測試我的建議會給你提供你請求的結果集。 http://sqlfiddle.com/#!9/97c0c/3 –