sql - SQL:过滤后合并列值
问题描述
我有两个表:表 1 即“mt000”包含:(代码、项目名称、ID)。
代码 | 项目名 | ID |
---|---|---|
01 | 红色的 | XXXX |
02 | 灰色的 | XXXY |
03 | 黑色的 | XXYY |
表 2 即“vwExtended_bi”包含:(ID、日期、销售人员、数量):
ID | 日期 | 销售员 | 账单数量 |
---|---|---|---|
XXYY | 2021 年 1 月 5 日 | 哈利 | 100 |
XXXY | 2021 年 10 月 5 日 | 马特 | 100 |
XXYY | 2021 年 5 月 20 日 | 马特 | 500 |
我想要得到的是在我选择的两个特定日期之间按 Sales_man 进行过滤。我的表 2 没有给出“biBillQty”列为空的结果。
我设法一次过滤上述条件之一,但不能同时过滤它们。这是我能想到的最好的代码:
select
mt000.Code,
mt000.LatinName,
(Case when biBillQty is null then '0' else biBillQty end) AS QTY
from mt000
left join vwExtended_bi on mt000.GUID = vwExtended_bi.biMatPtr
where (biBillQty LIKE '%' OR biBillQty is NULL)
group by
mt000.Code,
mt000.LatinName,
vwExtended_bi.biBillQty
目标是:
- 让所有项目甚至显示为空
- 应用两个过滤器:按 Sales_man 和日期
- 将两个条件都为真的数量合并到每个项目或 ID 的一行中
例如这个
ID | 日期 | 销售员 | 账单数量 |
---|---|---|---|
XXXY | 2021 年 1 月 5 日 | 哈利 | 100 |
XXXY | 2021 年 10 月 5 日 | 马特 | 100 |
XXYY | 2021 年 5 月 20 日 | 马特 | 500 |
例如,如果我选择按 Sales_man 过滤,则要像这样:
ID | 项目名 | 账单数量 |
---|---|---|
XXXY | 灰色的 | 200 |
XXYY | 黑色的 | 500 |
日期仅用于过滤,因此不需要显示在结果中
解决方案
推荐阅读
- grafana - 如何在 Grafana 7 中显示 HTML
- python - Leetcode 5 最长回文子串 (python)
- python - 如何在不使用脚本录制和回放选项的情况下自动化 SAP GUI 流程
- php - codeigniter 输入日期字段不应接受前几天
- javascript - Javascript高阶函数:
- next.js - 带有本地化的 Next.js - 使用入口配置在子路径上部署
- python - 有人可以解释这两个函数之间的时间复杂度吗?
- r - 连接 X 和 Y 轴
- reactjs - tsc compile in React (create-react-app) 需要明确的编译标志,尽管我在 tsconfig.json 中设置了它们
- node.js - ERR_HTTP_HEADERS_SENT 管道相关?