回答編集履歴

2 訂正

unishako

unishako score 353

2015/08/03 09:18  投稿

こんにちは。
最終残高って直近の残高ってことでいいですよね?
ご提示頂いているSQLと結果が違うのが気になりますが、
こちらでいかがでしょうか?
Oracleです。  
**※これだと日付が直近になりません・・・。
いったんSQLとりさげます。**
```sql
SELECT C.NAME 名前,
CASE C.SEX
 WHEN '1' THEN '男'
 WHEN '0' THEN '女'
END AS 性,
ZAN AS 残高
FROM YOKIN Y
INNER JOIN (SELECT ID, TO_CHAR(MAX(TO_DATE(DAY, 'YYYYMMDD')), 'YYYYMMDD') DAY FROM YOKIN GROUP BY ID) T ON Y.ID = T.ID AND Y.DAY = T.DAY
INNER JOIN CUSTOMERS C ON Y.ID = C.ID
ORDER BY Y.ID
```
1 訂正

unishako

unishako score 353

2015/08/03 09:12  投稿

こんにちは。
最終残高って直近の残高ってことでいいですよね?
ご提示頂いているSQLと結果が違うのが気になりますが、
こちらでいかがでしょうか?
```sql
SELECT C.NAME 名前,
 CASE C.SEX
   WHEN '1' THEN '男'
   WHEN '0' THEN '女'
 END 性,
 ZAN AS 残高
FROM YOKIN Y
INNER JOIN (SELECT ID, MAX(DAY) DAY FROM YOKIN GROUP BY ID) T ON Y.ID = T.ID AND Y.DAY = T.DAY
INNER JOIN CUSTOMERS C ON Y.ID = C.ID
ORDER BY Y.ID
```
**※これだと日付が直近になりません・・・。
いったんSQLとりさげます。**

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る