Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 交叉表查询:从Access DB获取缺失数据的空数据_Sql_Excel_Ms Access_Crosstab_Missing Data - Fatal编程技术网

Sql 交叉表查询:从Access DB获取缺失数据的空数据

Sql 交叉表查询:从Access DB获取缺失数据的空数据,sql,excel,ms-access,crosstab,missing-data,Sql,Excel,Ms Access,Crosstab,Missing Data,我有Access数据库中的数据,该数据库包含多天的数据。 但它有时会丢失某些日期的数据 在这个例子中,我有 myDate Location Price 11/1/2013 South 10 11/1/2013 West 20 11/1/2013 East 10 11/2/2013 South 10 11/2/2013 West 2

我有Access数据库中的数据,该数据库包含多天的数据。 但它有时会丢失某些日期的数据

在这个例子中,我有

myDate           Location    Price
11/1/2013        South       10
11/1/2013        West        20
11/1/2013        East        10   
11/2/2013        South       10
11/2/2013        West        20
11/2/2013        East        10   
11/4/2013        South       10   <---- 11/3/2013 Data Missing
11/4/2013        West        30
11/4/2013        East        10   
我想当我从Access调用此数据时,我可以使用NZ函数,并且每当我发现空值时,我可以在Excel电子表格中输入#N/A错误,这样我就可以捕获丢失的数据并在以后进行填充

我将如何做到这一点?我这样做是正确的还是有更好的方法


任何帮助或提示都将不胜感激。

以下是我的方法

不要在数据表中包含空日期。回到以前的方式,表中只包含有效数据

在表上创建交叉表查询。这不包括没有数据的日期。(来自您的示例:)


使用此新查询填充Excel文件。它将包括没有数据的日期的空行。

谢谢您的回答。但有一个问题:我有多个查询,需要检查丢失的日期。然后,按照您的解决方案,我必须为每一个创建查询,对吗?有办法解决这个问题吗?如果他们是交叉表,很不幸是的。Access不允许在子查询中使用交叉表。这是没办法的。如果它们不是交叉表,您可以在同一查询中包含左连接。
myDate           Location    Price
11/1/2013        South       10
11/1/2013        West        20
11/1/2013        East        10   
11/2/2013        South       10
11/2/2013        West        20
11/2/2013        East        10   
11/3/2013                         <---- Null values
11/4/2013        South       10   
11/4/2013        West        30
11/4/2013        East        10  
myDate    South   West   East
11/1/2013 10      20     10
11/2/2013 10      20     10    <---- 11/3/2013 Data skipped
11/4/2013 10      30     10
myDate    South   West   East
11/1/2013 10      20     10
11/2/2013 10      20     10    
11/3/2013                  
11/4/2013 10      30     10
myDate    South   West   East
11/1/2013 10      20     10
11/2/2013 10      20     10    <---- 11/3/2013 Data skipped
11/4/2013 10      30     10
SELECT tblCalendar.cdate, South, West, East
FROM tblCalendar
LEFT JOIN qryXtab
ON tblCalendar.cdate = qryXtab.myDate
ORDER BY tblCalendar.cdate