【发布时间】:2021-02-14 21:15:38
【问题描述】:
我有以下两张表,
津贴表,
employeeId title value Salary
14 Mobile 200 13000
14 Transport 7000 13000
代码表,
title code
Transport A1
Mobile A2
Salary A3
我想得到这样的结果,
employeeId title value code
14 Mobile 200 A2
14 Transport 7000 A1
14 Salary 13000 A3
我的查询如下,
select employeeId,title,CASE
WHEN title = 'Mobile' THEN 'A1'
WHEN title = 'Transport' THEN 'A2'
ELSE 'A3'
END as AllowancesCode,
value
from Reports where employeeId = 14 ;
可以预见的是,这错过了 Salary 字段,
employeeId title AllowancesCode value
14 Mobile A1 200
14 Transport A2 7000
编辑
数据更加清晰,
一个员工可以有不同价值的不同津贴,但工资是固定的,只有一个价值。具有另一个employeeid 的另一个员工可能有相同的薪水。一个employeeId 将具有一个salary 值。
【问题讨论】:
-
想象第一个表中的 Salary 列值是 12000 和 14000 - 这种情况下的输出是什么?
-
@Akina 员工的薪水列值将相同。 employeeid 字段是这里的关键。
-
员工的薪水列值将是相同的 证明它 - 提供提供这种平等的约束。如果不存在,则值可能不同。
-
@Akina 不确定您希望我如何证明这一点,但我知道我的数据。这样想,一个员工可以有不同的津贴,不同的价值,但工资是固定的,只会是一个价值。但是,具有另一个雇员 ID 的另一名雇员可能有相同的薪水。希望这是有道理的。
-
“可以预见的是,这错过了薪水领域,” - 这到底是什么意思?您分享的预期结果不包含任何“工资字段”