我們在我的公司有一個會員卡數據庫。該卡系統由全國兩種類型的終端提供服務。問題是,兩個終端對當前的點平衡進行不同的計算。將ORACLE片段組合成條件語句
我想查詢首先按日期查找單個用戶事務列表的最後一行,然後檢查終端的ID,並根據ID是什麼從同一行返回卡餘額。
兩種類型的終端,可以這樣表示:
terminal_id LIKE 'AGHUPR9%'
terminal_id LIKE 'AGHUPR7%'
的AGHUPR9%的人從一列取得平衡簡稱card_balance。 AGHUPR7%的需要總和card_balance和total_points列以獲得當前餘額。
我寫的查詢的主要部分,但我不熟悉不夠與ORACLE,所以我不知道如何將它們結合語法。這是我很感激你的幫助。下面是我想到的,其中有我不確定所需代碼的意見。
SELECT *
FROM
(SELECT terminal_id
FROM ag_tranzakcio
WHERE cardnumber = '9348722610095185'
ORDER BY tran_date DESC)
WHERE ROWNUM = 1
如果上述語句返回開始AGHUPR9一個TERMINAL_ID,做到這一點:
SELECT *
FROM
(SELECT card_balance
FROM ag_tranzakcio
WHERE cardnumber = '9348722610095185'
ORDER BY tran_date DESC)
WHERE ROWNUM = 1
如果第一個語句返回開始AGHUPR7一個TERMINAL_ID,做到這一點而不是:
SELECT *
FROM
(SELECT card_balance+total_points
FROM ag_tranzakcio
WHERE cardnumber = '9348722610095185'
ORDER BY tran_date DESC)
WHERE ROWNUM = 1
如何將它們組合成正在運行的查詢?我正嘗試使用CASE,但收效甚微。
預先感謝您。
可愛的。這看起來很完美,正是我一直在尋找的。非常感謝,馬特。 – Andrew