如果我有一個columns像下面這樣很少的表,那么算術很容易,其中結果的公式存盤在其他地方。
Table Result
| ID | 姓名 | A列 | B欄 | C欄 | 結果 |
|---|---|---|---|---|---|
| 1 | 美國廣播公司 | 10 | 2 | 4 | A*B/C=20 |
如果ColumnA,ColumnB和ColumnC的值存盤在主表中,另一個表中的資料值如下,那么應該是什么方法
Table Master
| ID | 相關 | 列名 |
|---|---|---|
| 1 | 測驗1 | A列 |
| 2 | 測驗1 | B欄 |
| 3 | 測驗1 | C欄 |
| 4 | 測驗2 | A列 |
| 5 | 測驗2 | B欄 |
Table Formula
| ID | 相關 | 公式 |
|---|---|---|
| 1 | 測驗1 | A列*B列/C列 |
| 2 | 測驗2 | (A 列 B 列) / 2 |
Table Data_Source
| ID | 相關 | column_id | 列名 | 列值 |
|---|---|---|---|---|
| 1 | 測驗1 | 1 | A列 | 10 |
| 2 | 測驗1 | 2 | B欄 | 2 |
| 3 | 測驗1 | 3 | C欄 | 4 |
| 4 | 測驗2 | 1 | A列 | 8 |
| 5 | 測驗2 | 2 | B欄 | 8 |
請就用于填充表結果的可能 SQL 陳述句提供建議
uj5u.com熱心網友回復:
像這樣的東西。它被限制為每列一個 JOIN (所以不是任意數量的列,交叉表是要走的路)并且可能有更好的方法,但這回答了我認為的問題。基本上,它重構了您的原始表格。我還沒有測驗過錯別字等。
SELECT related_to name, formula.formula result, cola.column_value columnA, colb.column_value columnB, colc.column_value columnC
FROM master
JOIN formula ON master.related_to = formula.related_to
JOIN data_source cola ON 'columnA' = data_source.column_name
AND master.related_to = data_source.related_to
JOIN data_source colb ON 'columnB' = data_source.column_name
AND master.related_to = data_source.related_to
JOIN data_source colb ON 'columnC' = data_source.column_name
AND master.related_to = data_source.related_to
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/516622.html
