sql - 从sql中的join复制行
问题描述
我有两个表:文档标题和文档行。
从我正在使用的文档标题:
- 文档编号
- 导入时间
- 责任中心
从我要起诉的文档行:
- 否_
我的代码示例:
SELECT
DocHeader.[Document No_] AS DocNo
,DocHeader.[Imported on] AS ImportedOn
,DocLine.No_ AS BoxNo
,DocHeader.[Responsibility Center] AS Center
,CASE
WHEN DocHeader.[Status] = 0 THEN 'Posted'
WHEN DocHeader.[Status] = 1 THEN 'Imported'
WHEN DocHeader.[Status] = 2 THEN 'Processed'
WHEN DocHeader.[Status] = 3 THEN '3'
ELSE 'Empty'
END AS STATUS
FROM [MDR].[dbo].[nav_BG$IC_Document_Header] AS DocHeader
JOIN [MDR].[dbo].[nav_BG$IC_Document_Line] AS DocLine ON DocHeader.[Document No_] = DocLine.[Document No_]
WHERE DocHeader.[Document No_] = 'BGLTD0005237'
问题是我的代码从同一个文档中创建了多行。
一个 DocNo 可以有多个 BoxNo。
他为每个 DocNo 制作双倍的 BoxNo。
我在哪里做错了什么?
结果示例:
DocNo ImportedOn BoxNo Center Status
1234 2019-11-20 12 B01 Posted
1234 2019-11-20 12 B01 Posted
7777 2019-11-20 12 B01 Posted
7777 2019-11-20 12 B01 Posted
正确的方法是:
DocNo ImportedOn BoxNo Center Status
1234 2019-11-20 12 B01 Posted
7777 2019-11-20 12 B01 Posted
解决方案是在文档类型的 where 子句中添加过滤器。
解决方案
您是否尝试过使用 MAX() 函数?它将返回所选列的最大值,如果我正确理解了您的问题,应该删除您重复的行。
MAX(DocHeader.[Document No_]) AS DocNo
推荐阅读
- javascript - 使用canvg从svg获取png失败
- javascript - nodemailer 发件人为空
- python - 如何根据使用 pandas 的另一列 [SoldDate] 找到特定列 [Model] 的计数?
- python - 如何在 .txt 文件中提取特定范围的行?
- graphql - 按照 GraphQL 教程/解析器对象查询 MySQL 数据库失败
- python - Bash 命令可以在 shell 中运行,但不能通过 python suprocess.run
- angular - 如何使用 Typescript 为 Angular 反应表单声明模型类
- javascript - 如何在不刷新页面的情况下重定向到锚标记?
- javascript - 当我单击阅读更多时,如何使每个框展开
- spring-boot - 如何修复'试图从空的一对一属性分配 id'