SQL查询以对照另一个表查找一个表

时间:2019-04-11 20:33:19

标签: sql

我有两个Excel表-第一个是数据表,第二个是查询表。它们的结构如下-

数据表

(1 + 2) + sum1 [3..n]

查询表Lookup Table

+----------+-------------+----------+----------+
| Category | Subcategory | Division | Business |
+----------+-------------+----------+----------+
| A        | Red         | Home     | Q        |
| B        | Blue        | Office   | R        |
| C        | Green       | City     | S        |
| D        | Yellow      | State    | T        |
| D        | Red         | State    | T        |
| D        | Green       | Office   | Q        |
+----------+-------------+----------+----------+

因此,我想根据查找表中给出的条件将查找值列添加到数据表中。例如,对于查找表中的第一行,我不想在类别,子类别或部门上查找。但是如果业务是Q,那么我想将查找值填充为ABC。同样,对于第二行,我不想考虑子类别。和业务。但如果是类别。是“ B”,部门是“ Office”,我希望它填充DEF。所以结果应该像这样-

[最终结果数据表]

+----------+-------------+----------+----------+--------------+
| Category | Subcategory | Division | Business | LookUp Value |
+----------+-------------+----------+----------+--------------+
| 0        | 0           | 0        | Q        | ABC          |
| B        | 0           | Office   | 0        | DEF          |
| C        | Green       | 0        | 0        | MNO          |
| D        | 0           | State    | T        | RST          |
+----------+-------------+----------+----------+--------------+

我对SQL还是很陌生,实际数据集非常复杂,因为基于不同条件的多个查找值。如果您认为任何其他脚本语言都可以更好地工作,那么我也对此持开放态度。我的数据当前在Excel中

1 个答案:

答案 0 :(得分:1)

如果数据是如此复杂,则应首先考虑是否要将其放入(关系)数据库(如MS Access,MySQL等)中,而不是将其置于电子表格(如MS Excel)中。

这两种程序都用于结构化数据处理,但是数据库主要专注于有效的数据存储和数据完整性(包括保护类型安全性,必填字段,唯一字段,各种数据集/表之间的必填引用等)和电子表格主要关注数据分析和计算。

关系数据库支持结构化查询语言(SQL),以便客户端查询其数据。据我所知,电子表格通常不使用或不支持SQL。

可以让MS Excel导入或引用外部数据源(如关系数据库)中的数据以对其进行分析和计算。

另一种方法(有时)也是可行的:在关系数据库系统内作为外部表链接到电子表格工作表,以在一定范围内允许使用SQL查询数据。但是在我看来,使用数据库存储数据并使用电子表格(作为数据库客户端)对数据库中的数据进行分析将是更合乎逻辑的设计。

但是,使用多个MS Office应用程序和/或外部数据库创建这样的集成解决方案可能是一个复杂的挑战,尤其是当您刚刚开始学习它们时。

说实话,我没有设计基于MS Office的解决方案的经验,因此我无法指导您解决任何陷阱。我确实希望,这个答案可以帮助您找到正确的出路...

相关问题