2015-11-06 104 views
-3

我有這個數據集,我需要弄清楚, 對於哪個帳戶有一個-ve和一個給定的日期通過這個月+ ve的金額。sql |需要查詢來過濾數據

也顯示這些賬戶與各自的金額和日期

Date acct amt 
x  123 -1.1 
x  123 2.3 
y  234 1.4 
y  234 1.5 
y  234 -4.3 
z  345 8.2 
z  345 1.3 

您的幫助深表感謝。

編輯:

Select date, acct, amt 
from table_name 
where date between 'x' and 'z' 
order by date, acct; 

現在我可以看到像我上面已經顯示,但是我不能夠想出用什麼前進的數據。

預期的結果(帳戶以Z日期已經一去不復返了,因爲它有兩個+已經交易):

Date acct amt 
x  123 -1.1 
x  123 2.3 
y  234 1.4 
y  234 1.5 
y  234 -4.3 
+3

此問題未顯示任何研究工作。 –

+0

你寫了什麼SQL來試圖做到這一點? – danjuggler

+0

從table_name選擇日期,acct,amt,其中'x'和'z'之間的日期按日期排序,acct;現在我可以看到像上面顯示的數據,但我無法弄清楚用什麼來推進。我是初學者。如果任何人都可以指出我正確的方向,我會明白這一點。 – ASH

回答

0

SqlFiddleDemo

你決定你想要做什麼0

SELECT Table1.* 
FROM Table1 
JOIN 
    (
    SELECT "Date", "acct" 
    FROM Table1 
    GROUP BY "Date", "acct" 
    HAVING 
     MIN("amt") < 0 
    AND MAX("amt") > 0 
    ) T 
    ON Table1."Date" = T."Date" 
AND Table1."acct" = T."acct" 

OUTPUT

| Date | acct | amt | 
|------|------|------| 
| x | 123 | -1.1 | 
| x | 123 | 2.3 | 
| y | 234 | 1.4 | 
| y | 234 | 1.5 | 
| y | 234 | -4.3 | 
+0

沒有這個沒有它 – ASH

+0

檢查更新 –

+0

非常感謝你這麼多胡安,但這是我設法做的幫助其他來源:select * from (選擇日期,acct,amt, 情況下,當時<0然後AMT否則爲0端作爲amt_nve, 情況下,當AMT> 0,那麼AMT否則爲0端作爲amt_pve 從TABLE_NAME ) 其中amt_nve <0且amt_pve> 0 ; – ASH