mysql - 合并具有单独日期范围的表而不重叠数据 - Access

标签 mysql date ms-access

我不太确定如何表达这个问题,因为在 Access 中可能无法做到这一点(以我有限的知识和对查询和表关系的广泛研究)。不幸的是,由于敏感数据,我无法显示屏幕截图,但我会尽力用字符来表达。

我正在尝试合并两个简单的查询,这些查询仅提取超出特定日期范围(逾期认证)的商家。商家可能会逾期进行扫描和 SAQ。我可以轻松地为每个查询创建两个单独的查询,但我想知道是否可以运行一个包含这两个查询的查询。

我所拥有的示例:

商家帐户 |数据库管理员姓名 | ECM 名称 | SAQ 截止日期

000000000000000....XXXX......... XXXX......... 10/10/2013

商家帐户 |数据库管理员姓名 | ECM 名称 |扫描截止日期

111111111111111111..ZZZZ.....ZZZZ.....1/12/2012

我通过在简单查询上设置 Between Date() 和 Date()-1000 标准参数来完成上述操作。我的目标是产生以下内容;

商家帐户 |数据库管理员姓名 | ECM 名称 |扫描截止日期 | SAQ 截止日期

111111111111111111..ZZZZ.....ZZZZ.....1/12/2012........... ..空/无数据

0000000000000000..XXXX........... XXXX......... 空/无数据.....10/10/2013年

老实说,导出两个查询并手动复制/粘贴列可能更容易,但我不确定是否可以用更少的步骤来完成它! :-]

目标:

  • 从同时具有 Scan 和 SAQ 列的表中提取 2 个查询
  • 从当前日期开始拉出逾期日期
  • 避免重叠数据,有效地添加信息而不是组合

我尝试过的事情:

  • 联合查询
  • 加入查询
  • 使用参数进行实验

谢谢!

编辑

 SELECT [Overall Status Report].[Merchant Account Number], [Overall Status Report].[DBA Name], [Overall Status Report].[PCI Contact Name], [Overall Status Report].[PCI Contact Number], [Overall Status Report].[Email address], [Overall Status Report].[ECM Name], [Overall Status Report].[ECM Email], [Overall Status Report].[SAQ Due Date]
FROM [Overall Status Report]
WHERE ((Not ([Overall Status Report].[ECM Name])="ACCOUNT CLOSED") AND (([Overall Status Report].[SAQ Due Date]) Between Date() And Date()-1000))
UNION
SELECT [Overall Status Report].[Merchant Account Number], [Overall Status Report].[DBA Name], [Overall Status Report].[PCI Contact Name], [Overall Status Report].[PCI Contact Number], [Overall Status Report].[Email address], [Overall Status Report].[ECM Name], [Overall Status Report].[ECM Email], [Overall Status Report].[Scan Due Date]
FROM [Overall Status Report]
WHERE ((Not ([Overall Status Report].[ECM Name])="ACCOUNT CLOSED") AND (([Overall Status Report].[Scan Due Date]) Between Date() And Date()-1000));

这很有效,但它不会将 SAQ 数据和 SCAN 数据分成两个单独的列,因此很难知道商家逾期的是哪一列。

编辑 2:

SELECT [Overall Status Report].[Merchant Account Number], [Overall Status Report].[DBA Name], [Overall Status Report].[PCI Contact Name], [Overall Status Report].[PCI Contact Number], [Overall Status Report].[Email address], [Overall Status Report].[ECM Name], [Overall Status Report].[ECM Email], NULL AS [Overall Status Report].[SAQ Due Date], [Overall Status Report].[Scan Due Date]
FROM [Overall Status Report]
WHERE ((([Overall Status Report].[ECM Name])<>"ACCOUNT CLOSED") AND (([Overall Status Report].[SAQ Due Date]) Between Date() And Date()-1000) AND (([Overall Status Report].[Scan Due Date]) Between Date() And Date()-1000))
UNION
SELECT [Overall Status Report].[Merchant Account Number], [Overall Status Report].[DBA Name], [Overall Status Report].[PCI Contact Name], [Overall Status Report].[PCI Contact Number], [Overall Status Report].[Email address], [Overall Status Report].[ECM Name], [Overall Status Report].[ECM Email], [Overall Status Report].[SAQ Due Date], NULL AS [Overall Status Report].[Scan Due Date]
FROM [Overall Status Report]
WHERE ((([Overall Status Report].[ECM Name])<>"ACCOUNT CLOSED") AND (([Overall Status Report].[SAQ Due Date]) Between Date() And Date()-1000) AND (([Overall Status Report].[Scan Due Date]) Between Date() And Date()-1000));

最佳答案

您需要将 NULL 设置为列名称:

SELECT [Merchant Account], [DBA Name], [ECM Name], NULL AS [SCAN Due Date], [SAQ Due Date]
FROM Table1
UNION 
SELECT [Merchant Account], [DBA Name], [ECM Name], [SCAN Due Date], NULL AS [SAQ Due Date]
FROM Table2

关于mysql - 合并具有单独日期范围的表而不重叠数据 - Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48027846/

相关文章:

c# - Mapper 类中的参数超出范围异常

php - mysql/php 选择每年的第一条和最后一条记录在数据库的特定列中有记录

MySQL在命令行中向后和向前搜索历史记录

python - 如何从 np.datetime64 对象中获取月份,而不是使用 pandas

javascript - Date.UTC() 返回上个月的最后一天,而 getUTCFullYear()、getUTCMonth() 正确返回正确月份的第一天

excel - 2010 Access - 如何在 Excel 文件中添加和使用形状

asp.net - 更新查询似乎删除了备注字段

php - MySQL 查询没有结果

java.util.Date 的时间是 00 :00:00 when save to Oracle

ms-access - Microsoft Access : Long Text field truncated in report! 如何解决此问题?