gpt4 book ai didi

SQL-在左外连接查询中添加缺失数据

转载 作者:行者123 更新时间:2023-12-04 14:09:25 26 4
gpt4 key购买 nike

我有以下数据
组件

componentid  title
1 houseRent
2 medical
3 Travelling Allowance

empPayrollMaster

MasterID EmployeeID SalaryMonthID
1 101 1
2 102 1
3 103 1

empPayrollDetail

DetailID MasterID ComponentID amount
1 1 1 100
2 1 2 500
3 2 1 300
4 2 3 250
5 3 1 150
6 3 2 350
7 3 3 450

要求的输出

EmployeeID MasterID ComponentID amount
101 1 1 100
101 1 2 500
101 1 3 0
102 2 1 300
102 1 2 0
102 2 3 250
103 3 1 150
103 3 2 350
103 3 3 450

如果我在 componentsempPayrollDetail 之间进行左外连接,为了获得所需的输出,我在 EmployeeID 和 MasterID 以及 amount 列中得到 null。如何修改left join以获得需要的输出

最佳答案

您需要对ComponentsempPayrollMaster 执行CROSS JOIN 以生成员工和组件的第一个所有组合。然后,在 empPayrollDetail 上执行 LEFT JOIN 以获得结果,对 NULL 使用 ISNULL(amount, 0) 数量

SQL Fiddle

SELECT
epm.EmployeeID,
epm.MasterID,
c.ComponentID,
amount = ISNULL(epd.amount, 0)
FROM empPayrollMaster epm
CROSS JOIN Components c
LEFT JOIN empPayrollDetail epd
ON epd.MasterID = epm.MasterID
AND epd.ComponentID = c.ComponentID

关于SQL-在左外连接查询中添加缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31645267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com