我的 SQL Server 2008 表的构造如下: 160 列由 Ratio_ID 和 160 个公司作为标题 742 行由每个公司的 Ratio_ID 组成。
典型的结构是:
比率_ID | 公司 1 | 公司 2 | 至公司 160
部分03x0 | 0.01 | 0.03 | 到 Ratio_ID742 |
我如何能够运行查询来请求 Ratio_ID part03x0 为零的所有公司?
试图谷歌这个,但解释它非常困难。
希望这是有道理的!
我的 SQL Server 2008 表的构造如下: 160 列由 Ratio_ID 和 160 个公司作为标题 742 行由每个公司的 Ratio_ID 组成。
典型的结构是:
比率_ID | 公司 1 | 公司 2 | 至公司 160
部分03x0 | 0.01 | 0.03 | 到 Ratio_ID742 |
我如何能够运行查询来请求 Ratio_ID part03x0 为零的所有公司?
试图谷歌这个,但解释它非常困难。
希望这是有道理的!
为什么将公司存储为列?这些公司应该放在他们自己的表中,每个公司都有一个唯一的 ID。然后,您可以将此 ID 与 Ratio_ID 一起使用以执行查询。
160列是一个巨大的矫枉过正。这是一个关于如何规范化数据库的好教程。
编辑:
您不需要为每家公司都有一张桌子。您只需要一个名为tbl_Company的表,然后添加以下内容:
company_id | company_name
1 | CompanyNameOne
2 | CompanyNameTwo
3 | CompanyNameThree
您的比率的另一个表,tbl_Ratio
ratio_id | ratio_name
1 | RatioNameOne
2 | RatioNameTwo
然后将两个表的 usingForeignKeys
和Relationships
between 组合成一个单独的表,如下所示:
tbl_Company_Ratio
company_id | ratio_id | ratio_amount
1 2 5
1 1 2
3 2 10
2 2 5
....