【发布时间】:2016-10-19 20:09:50
【问题描述】:
我有一个要求,我需要在 > 0 时提取最大数据,在
SELECT A.employee_id, paycheck_number
max ( CASE
WHEN B.special = 'XXT' THEN B.AMOUNT
ELSE 0
END ) AMOUNT,
max ( CASE
WHEN B.special = 'XXH' THEN B.hrs1
ELSE 0
END ) HRS1
FROM Table1 A,
table2 B
LEFT OUTER JOIN table3 C
ON B.company = C.company
WHERE A .employee_id = '123456789'
GROUP BY A.employee_id, paycheck_number
ORDER BY 1
返回:
EMPLOYEE_ID AMOUNT HRS1 paycheck_number 123456789 2799.82 134.84 1234 123456789 832.86 40 4321 123456789 0 0 5678如果按数据删除组是:
EMPLOYEE_ID AMOUNT HRS1 paycheck_number 123456789 0 134.84 1234 123456789 2799.82 0 1234 123456789 0 40 4321 123456789 832.86 0 4321 123456789 0 -40 5678 123456789 -832.86 0 5678而我想要:
EMPLOYEE_ID AMOUNT HRS1 paycheck_number 123456789 2799.82 134.84 1234 123456789 832.86 40 4321 123456789 -832.86 -40 5678它看起来很简单,但是当我尝试时它不起作用。
【问题讨论】:
-
你能发布一些示例输入数据吗..
-
@Teja:输入数据?
-
你在这三个表中都有什么。
-
请在您的问题中发布
-
@Developer 太好了,现在请从评论中复制它,将其添加到您的原始帖子中,以便对其进行格式化(然后您可以删除评论)。此类附加信息属于帖子,而不是评论。
标签: sql oracle oracle11g oracle10g