sql - 连接包含公共列值的两行
问题描述
我有一个存储过程返回一个如下所示的表:
ID | Job | Freight | Postage | Job | Type
-------------------------------------------
1 | 100 | 0 | 0 | 5.00 | J
2 | 101 | 0 | 0 | 8.00 | J
3 | 101 | 2.00 | 0 | 0 | F
4 | 102 | 0 | 0 | 4.00 | J
5 | 102 | 0 | 3.00 | 0 | P
6 | 103 | 0 | 0 | 7.00 | J
7 | 104 | 0 | 0 | 9.00 | J
8 | 105 | 0 | 0 | 6.00 | J
我希望它像这样返回表格:
ID | Job | Freight | Postage | Job | Type
-------------------------------------------
1 | 100 | 0 | 0 | 5.00 | J
2 | 101 | 2.00 | 0 | 8.00 | J
4 | 102 | 0 | 3.00 | 4.00 | J
6 | 103 | 0 | 0 | 7.00 | J
7 | 104 | 0 | 0 | 9.00 | J
8 | 105 | 0 | 0 | 6.00 | J
预期的结果将连接具有匹配作业编号的行,并更改每个行的运费和邮资值,以便它们出现在一行上。永远不会有一个Job的实例同时具有Freight和Postage值,它将是一个或另一个或根本没有。
从我所看到的看来,我可能需要使用 PIVOT 运算符来实现这一点,但这似乎过于复杂。有没有办法可以使用 CASE 或 IF 表达式来实现这个结果?
我已经在使用 SUM 函数来获取Freight和Postage的值。我不确定如何让这些值显示在Type J 行上。
SUM(CASE WHEN Transaction.Type = 'F' THEN Transaction.Price END) OVER (PARTITION BY TransactionLine.ID) AS Freight
解决方案
推荐阅读
- python - 用python保存html页面
- c# - 为什么我没有将对象引用设置为对象的实例
- sql - Code First 迁移 - SQL 更新列,其中包含来自同一表中另一行的数据
- javascript - (MetaMask - Javascript)sendTransaction 的值格式问题
- sql - Oracle 字符串连接太长
- android - Alternate of ProgressDialog
- django - 未设置 Django CSRF cookie:使用 Ajax 跨站点
- azure-devops - 如何为错误报告者设置权限
- python - PyInstaller - ImportError:没有名为 _bootlocale 的模块
- tensorflow - 如何在 Kali Linux(Raspberry Pi 4 ARM 映像)中安装 Tensorflow?