很抱歉提前问了这个模糊的问题。
我有下表:
State Sales
AL 1000
AK 2000
MI 4000
MA 3000
PA 1500
WY 3000
NY 2000
VM 1000
现在每个州都属于一个区域或多个区域:
Regions
AB: AL, 50%AK
CD: 50%Ak, MI
EF: MA, PA, 25%WY
GH: 75%WY, NY, VM
我想要下表:
State Region Sales
AL AB 1000
AK AB 1000
AK CD 1000
MI CD 4000
MA EF 3000
PA EF 1500
WY EF 750
WY GH 2250
NY GH 2000
VM GH 1000
我在SQL方面有一些经验,但我不确定如何继续。有指针吗?
删除了我之前的答案,你的模式是正确的,但你应该在regions表上添加数据(或者将其重命名为另一个表名,当这个表被命名为regions时会很混乱),比如:
region_code state_code percentage
AB AL 100
AB AK 50
CD Ak 50
CD MI 100
EF MA 100
EF PA 100
EF WY 25
GH WY 75
GH NY 100
GH VM 100
那么您的查询将类似于:
SELECT State.code, Region.code, ((Region.percentage * State.sales) / 100) as Sales
FROM State
INNER JOIN Region
ON State.code = Region.state_code
注意:这个答案是为了对您的模式进行一些小的更改。这个答案可以作为一个例子或给你一个想法。我建议您更多地分析应该如何创建数据库模式。如果需要,应进行数据库规范化和表的正确命名