MS SQL Excel的Excel文件、案例陈述或备选方案
我有一个excel文件用于处理数据。它是通过一个.csv文件输入的,我想输出几个不同的表,每个表都以不同的方式处理数据。初始设置完成后,执行此任务的人将不再是我。在探索了许多方法之后(例如设置SQL或Access数据库/使用读取和处理数据的excel函数),我决定在导入.csv后使用excel文件进行自我查询 我发现如何使用以下方法: SQL的方言我不熟悉,我能找到的唯一参考是: 这在大多数情况下都有效。在某些情况下,jetsql可以工作,但在其他情况下它会返回错误 我在表中有三列,Cust Status,'MinDateFiledBorrower'和'MinDateFiledBorrower'。日期字段中的一个或两个字段可能包含数据,或者其中一个字段可能为空。我正试图获得借款人和合作者的最短日期。我似乎在JetSQL中找不到Case语句的语法,而我在尝试时收到的错误使我怀疑它们不受支持 数据:MS SQL Excel的Excel文件、案例陈述或备选方案,sql,excel,ms-query,Sql,Excel,Ms Query,我有一个excel文件用于处理数据。它是通过一个.csv文件输入的,我想输出几个不同的表,每个表都以不同的方式处理数据。初始设置完成后,执行此任务的人将不再是我。在探索了许多方法之后(例如设置SQL或Access数据库/使用读取和处理数据的excel函数),我决定在导入.csv后使用excel文件进行自我查询 我发现如何使用以下方法: SQL的方言我不熟悉,我能找到的唯一参考是: 这在大多数情况下都有效。在某些情况下,jetsql可以工作,但在其他情况下它会返回错误 我在表中有三列,Cust
Cust Status 'MinDateFiledBorrower' 'MinDateFiledCoBorrower'
B-1001 9/15/2004 0:00 11/1/2006 0:00
B-1002 9/17/2004 0:00 11/9/2006 0:00
B-1003 10/7/2004 0:00 NULL
B-1004 NULL 10/14/2004 0:00
B-1005 9/23/2004 0:00 12/21/2006 0:00
B-1007 10/19/2004 0:00 2/12/2007 0:00
B-1008 10/22/2004 0:00 2/8/2007 0:00
B-101 NULL 12/11/2001 0:00
B-1010 10/25/2004 0:00 NULL
B-1011 10/28/2004 0:00 6/8/2007 0:00
B-1012 11/4/2004 0:00 6/28/2007 0:00
B-2298 5/12/2005 0:00 NULL
B-23 NULL 2/26/2007 0:00
B-230 NULL 5/15/2012 0:00
B-2300 NULL 5/24/2005 0:00
B-2301 NULL 6/30/2005 0:00
我最近的尝试:
select
`DischargeCombine$`.`Cust Status`
,`DischargeCombine$`.`'MinDateFiledBorrower'`
,`DischargeCombine$`.`'MinDateFiledCoBorrower'`
,case when `DischargeCombine$`.`'MinDateFiledBorrower'` is null then `DischargeCombine$`.`'MinDateFiledCoBorrower'`
when `DischargeCombine$`.`'MinDateFiledCoBorrower'` is null then `DischargeCombine$`.`'MinDateFiledBorrower'`
when `DischargeCombine$`.`'MinDateFiledBorrower'`>=`DischargeCombine$`.`'MinDateFiledCoBorrower'` then `DischargeCombine$`.`'MinDateFiledCoBorrower'`
when `DischargeCombine$`.`'MinDateFiledBorrower'`<`DischargeCombine$`.`'MinDateFiledCoBorrower'` then `DischargeCombine$`.`'MinDateFiledBorrower'` end as FirstDischarge
from `C:\Query Exports\BK Scrub Processing File.xlsx`.`DischargeCombine$` `DischargeCombine$`
选择
`卸货组合$``客户状态`
,`DischargeCombine$`.`MindateFiledBorLower'`
,`DischargeCombine$`.`MinDateFileDCoorror'`
,当'DischargeCombine$`.'MinDateFiledBorLower'为空时,则为'DischargeCombine$`.'MinDateFiledBorLower'`
当'DischargeCombine$`.'MinDateFiledBorrower'为空时,则'DischargeCombine$`.'MinDateFiledBorrower'`
当'DischargeCombine$`.'MinDateFiledBorLower'>='DischargeCombine$`.'MinDateFiledBorrower'时,则'DischargeCombine$`.'MinDateFiledBorrower'`
当'DischargeCombine$`.'MinDateFiledBorrower'MS Access Jet/ACE SQL引擎不支持ANSI-92CASE
语句时,我在该语句中提出了一个与其他缺少的ANSI方法不同的方言
而不是<代码> CASE < /代码>,考虑嵌套函数用于条件逻辑。下面的调整还使用了一个短表别名,以避免长而重复的标识符:
select
d.`Cust Status`
, d.`'MinDateFiledBorrower'`
, d.`'MinDateFiledCoBorrower'`
, iif(d.`'MinDateFiledBorrower'` is null, d.`'MinDateFiledCoBorrower'`,
iif(d.`'MinDateFiledCoBorrower'` is null, d.`'MinDateFiledBorrower'`,
iif( d.`'MinDateFiledBorrower'` >= d.`'MinDateFiledCoBorrower'`, d.`'MinDateFiledCoBorrower'`,
iif(d.`'MinDateFiledBorrower'` < d.`'MinDateFiledCoBorrower'`, d.`'MinDateFiledBorrower'`, null
)
)
)
) as FirstDischarge
from `C:\Query Exports\BK Scrub Processing File.xlsx`.`DischargeCombine$` d
另外,MS Access实际上是Jet/ACE引擎(.dll文件)的GUI,您可以使用它来查询Excel工作簿,还可以查询本机Jet/ACE表,甚至可以查询CSV文件。事实上,查询.mdb
或.accdb
以及类似的.xls、.xlsx、.xlsm、.xlsb
文件不需要安装MSAccess.exe程序。有趣的是,当Access可以读取CSV和Excel文件并在其自己的表上运行SQL查询时,您就绕过了MS Access来获得Excel解决方案。事实上,查询工作簿与查询Access数据库是同一个引擎!我认为喷气式飞机驾驶员不支持背部的滴答声。你试过用方括号吗?如果您将数据放入SQL Server、SQLite、postgreSQL。。。如果您继续使用access引擎的SQL,那么至少可以使用ACE驱动程序而不是Jet(仍然很难按照您的喜好构造查询)。这正是我要寻找的。非常感谢。我遇到了其他问题,当我尝试使用别名或子组时,excel文件会抛出错误。它最初并没有这样做,可能是它自己的表单上有太多的查询。我想我会再次尝试MS Access。
select
d.`Cust Status`
, d.`'MinDateFiledBorrower'`
, d.`'MinDateFiledCoBorrower'`
, switch(d.`'MinDateFiledBorrower'` is null, d.`'MinDateFiledCoBorrower'`,
d.`'MinDateFiledCoBorrower'` is null, d.`'MinDateFiledBorrower'`,
d.`'MinDateFiledBorrower'` >= d.`'MinDateFiledCoBorrower'`, d.`'MinDateFiledCoBorrower'`,
d.`'MinDateFiledBorrower'` < d.`'MinDateFiledCoBorrower'`, d.`'MinDateFiledBorrower'`
) as FirstDischarge
from `C:\Query Exports\BK Scrub Processing File.xlsx`.`DischargeCombine$` d