我正在尝试使用 SQL 查找表中特定值的总和。一个示例表是:
+-------+-------+-------+-------+-------+-------+-------+
| ID | Co1 | Va1 | Co2 | Va2 | Co3 | Va3 |
+-------+-------+-------+-------+-------+-------+-------+
| 01 | AA1 | 23.0| AA2 | 11.2| AA3 | 328.34|
| 02 | AA2 | 27.0| AA3 | 234.56| AA4 | 23.8|
| 03 | AA1 | 409.01| AA4 | 234.98| NULL | NULL |
+-------+-------+-------+-------+-------+-------+-------+
我有 35 个这样的“代码”列和值。
我需要的是选择一个只有一个代码的表格。假设我需要代码 AA3,这将是(此处不需要代码列,而只是显示我从哪里获得值):
+-------+-------+--------+
| ID | Code | Value |
+-------+-------+--------+
| 01 | AA3 | 328.34|
| 02 | AA3 | 234.56|
| 03 | AA3 | 0|
+-------+-------+--------+
稍后我将需要另一个(单独的)查询,其中包含多个代码的总和,例如代码 AA1 和 AA2 的总和。
+-------+---------+
| ID | Value |
+-------+---------+
| 01 | 34.2|
| 02 | 27.0|
| 03 | 409.01|
+-------+---------+
我正在考虑拥有一个“WHERE”并在每 35 列上运行一次,但这真的很乏味,而且这似乎不太有效。我想知道是否有办法通过 SQL 来做到这一点(我可以用 Excel 和 if 语句来做到这一点,而且效果很好)。
也许如果有一种方法可以“搜索”一行,返回列名,然后使用该列名来检索数字?
如果您需要更多信息,请告诉我 =)