這裏是我的查詢,因爲它代表,它的工作原理:SQL篩選
SELECT EXPENDITURES.CNTRT,
EXPENDITURES.L_CNTRT,
EXPENDITURES.BE,
EXPENDITURES.L_BE,
EXPENDITURES.SPGM_STD,
EXPENDITURES.L_SPGM,
EXPENDITURES.CAT,
EXPENDITURES.L_CAT,
EXPENDITURES.OCA,
EXPENDITURES.L_OCA,
EXPENDITURES.L2,
EXPENDITURES.L1L5,
EXPENDITURES.L_L1L5,
EXPENDITURES.OBJ,
EXPENDITURES.L_OBJ,
EXPENDITURES.STFY,
EXPENDITURES.CF,
EXPENDITURES.TRNS_AMT,
EXPENDITURES.MGDT,
EXPENDITURES.VENDOR_ID_NO,
EXPENDITURES.VENDOR_LONG_NAME,
EXPENDITURES.DESCRIPTION,
EXPENDITURES.INVOICE_NO,
EXPENDITURES.DN,
EXPENDITURES.OTHER_DOC_NO,
EXPENDITURES.PRIM_DOC_NO,
EXPENDITURES.SECOND_DOC_NO,
EXPENDITURES.TR
FROM IDS.EXPENDITURES EXPENDITURES
WHERE ((EXPENDITURES.BE<>'70212349'))
AND (EXPENDITURES.OCA LIKE '%C')
AND (EXPENDITURES.STFY='2017')
AND (EXPENDITURES.CF<>'C')
AND ((EXPENDITURES.MGDT<={ts '2016-07-31 00:00:00'}) AND (EXPENDITURES.MGDT>={ts '2016-07-01 00:00:00'}))
我被要求做的是讓這個,如果你只用場達CF組,總和在TRNS_AMT的基礎上,並且TRNS_AMT的總和> 0,然後返回這些事務上的所有其他數據。
我不是一個SQL人,必須手工完成所有這些工作,並希望得到我需要的任何幫助。我嘗試做一個HAVING和GROUP BY,但它不會讓我忽略GROUP BY後TRNS_AMT後面的所有字段,而GROUP BY後面的所有字段都會導致問題,因爲它們對於任何事務都不相同,從而導致在TRNS_AMT上沒有過濾。
所以,在英語,我需要找到什麼交易,他們通過前17場組合在一起的款項,不等於零,並返回所有28個領域的非零結果,他們TRNS_AMT unsummed ,給用戶。
請爲您正在使用的RDBMS添加標籤,如果可能的話,包括版本。 – DeanOC
@DeanOC我知道這是Oracle,因爲我必須追捕驅動程序才能連接到它,但就是這樣。我只是一個用戶,而且是一個零星的用戶。 – Fixer