将来自多个表的数据组合成excel

时间:2016-05-27 18:06:37

标签: sql excel

我正在尝试将多个表中的数据转换为excel中的一个数据集。我是初学者sql。

每个表都有患者编号作为唯一标识符。

表1可能有1列,导致任何给定患者的4行数据。

表2可能有7列,可为任何特定患者提供26行数据。

等等。我从24个表中提取数据,结果是61列和大约8000行。问题是,如果我尝试将所有这些表与患者编号连接起来,我最终会返回10万行返回。

现在我只运行24个单独的查询,将每个查询的结果放在电子表格的单独标签中,然后运行宏将所有标签合并到一个包含61列的电子表格中。

似乎sql应该可以做到这一点。但我是初学者,所以我很难搞清楚。

2 个答案:

答案 0 :(得分:0)

问题不是很清楚,但我所理解的是你需要一种简单的方法来保存这些数据在" sql"到电子表格。我建议您使用CSV(逗号分隔的Vlaues)格式。因为您可以自己轻松定义列标题,并且很容易将数据添加到每个列,您可以忘记" Tab"这是一个复杂的方法。

使用ArrayList保存所有pataients Objects.Each和该List中的每个对象都将携带从SQL数据库中获取的特定患者的所有信息。

Refer this了解CSV中的更多信息 希望这有帮助!

答案 1 :(得分:0)

好的,我得到了一些帮助。

我最终使用了Union All。之前的问题是我的所有不同的表都有不同的列数和不同的行数作为我的密钥标识符。所以我可以使用Union All,如果我在select语句中使用Null,那么我在所有select语句中都有相同数量的列。然后查询将所有数据堆叠在一起:

非常感谢Kris在http://www.essentialsql.com/

我有19个表和62列,所以在完成查询之前我还有一段路可走。

(选择PatientID,1作为TableOrder,A1,A2,NULL作为B1,NULL作为B2,NULL作为C1,NULL作为C2 来自TableA UNION ALL SELECT PatientID,2,NULL,NULL,B1,B2,NULL,NULL 从TableB UNION ALL SELECT PatientID,3,NULL,NULL,NULL,NULL,C1,C2) ORID BY PatientID,TableOrder