猿问

有没有办法减少一个百分比的值,并增加同一个表中的其他值而不选择1乘1

我需要帮助构建一个SQL查询,我会发布我的作业,解释起来有点棘手......所以你可以更好地了解我的问题:

将主要城镇的人口增加1%,代表居民迁移到主要城镇。例如:

伦敦市和自治市(使用谷歌翻译,对不起,如果有一些错误):60万居民

London city: 300000 inh.
   Municipality1:50000 inh   Municipality1:80000 inh   Municipality1:70000 inh   Municipality1:100000 inh

将城市增加2%

London city: 306000 inh.
   Municipality1:49000 inh   Municipality1:78400 inh   Municipality1:68600 inh   Municipality1:98000 inh

我的数据库有这个表tab_municipalities。

**Municipality_description**|**Inhabitants**| **Province**

London-------------------------|300k---------| London

Muni1---------------------------|50k-----------| London

Muni2---------------------------|80k-----------| London

Muni3---------------------------|70k-----------| London

Muni4---------------------------|100k---------| London


那么,有没有办法改变首席城市居民百分比并改变市政当局而不逐一选择?

我在考虑这样的事情:

set tab_municipalities update London=(London*1.02);

我的问题来到这里......我如何“扩散”每个市镇的主要城镇的增量,减少他们的居民?对不起,如果我写了所有这些细节但我想更清楚我必须做什么...我需要在java项目中传递这个查询。

谢谢你的帮助,抱歉我的英语不好。


炎炎设计
浏览 519回答 2
2回答

largeQ

由于伦敦城市在这个例子中占总人口的一半,我们可以简单地为城市增加2%,并直接从所有其他行中删除2%(不使用需要分配的一些总和)。更新时使用CASEUPDATE tab_municipalities  SET Inhabitants = CASE WHEN Municipality_description = 'London' THEN Inhabitants * 1.02                   ELSE Inhabitants * 0.98                   ENDWHERE Province = 'London'
随时随地看视频慕课网APP

相关分类

Java
我要回答