0

我的 SQL Server 2008 表的构造如下: 160 列由 Ratio_ID 和 160 个公司作为标题 742 行由每个公司的 Ratio_ID 组成。

典型的结构是:

比率_ID | 公司 1 | 公司 2 | 至公司 160

部分03x0 | 0.01 | 0.03 | 到 Ratio_ID742 |

我如何能够运行查询来请求 Ratio_ID part03x0 为零的所有公司?

试图谷歌这个,但解释它非常困难。

希望这是有道理的!

4

1 回答 1

0

为什么将公司存储为列?这些公司应该放在他们自己的表中,每个公司都有一个唯一的 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

然后将两个表的 usingForeignKeysRelationshipsbetween 组合成一个单独的表,如下所示:

tbl_Company_Ratio

company_id   |   ratio_id    | ratio_amount

   1               2              5
   1               1              2
   3               2              10
   2               2              5
  ....
于 2013-09-04T12:36:34.207 回答