加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 从多个表中计算数据

发布时间:2020-12-16 06:33:23 所属栏目:asp.Net 来源:网络整理
导读:我有3个表T1,T2,T3. 他们每个人都与另一个人有关系. SELECT T1.T1_Serno,T2.T2_Serno,T3.T3_Serno,T1.T1,COUNT( T3.T3_Serno) as Count_1,T2.T2,T3.T3,T3.QuantityFROM T1 INNER JOIN T2 ON T1.T1_Serno = T2.T1_Serno INNER JOIN T3 ON T2.T2_Serno = T3.T2
我有3个表T1,T2,T3.
他们每个人都与另一个人有关系.

SELECT     T1.T1_Serno,T2.T2_Serno,T3.T3_Serno,T1.T1,COUNT( T3.T3_Serno) as Count_1,T2.T2,T3.T3,T3.Quantity
FROM         T1 INNER JOIN
                      T2 ON T1.T1_Serno = T2.T1_Serno INNER JOIN
                      T3 ON T2.T2_Serno = T3.T2_Serno
GROUP BY T1.T1_Serno,T3.Quantity

结果是

我想让Count_1告诉我有多少T3,而Count_2有相对的T3数量.
我期待像这样的结果

T2    T3      Count_1 Count_2
    Apple Apple1    3    80
    Apple Apple2    3    80
    Apple Apple3    3    80
    -------
    Google Google1  1    40
    ------
    Nokia Nokia1    1    15

因此,当我把它放在网格中时,我可以使用Counts作为页脚.
像这样的东西,但每组之下的总数.

解决方法

SELECT t2.t2,t3.t3,sum(t3.Quantity)
FROM T2 AS T2
INNER JOIN T3 AS T3 ON t3.t2_serno = t2.t2_serno
GROUP BY t2.t2,t3.t3

实质上,您希望通过1个主要分组(t2)和1个次要分组(t3)对事物进行分组.因此,当您执行sql server group by时,它会在分组中创建分组(如果您有多个分组元素).最左边的分组元素将是主要分组,从左到右的读数将是子分组.这就是我通过t2.t2,t3.t3获得GROUP的方式.

一旦我理解了你想要它如何分组,我就查看了列数量.您想要t3中数量列的总和.由于t3.t3是t2.t2的子组,因此sql server将列聚合应用于t3.t3子组的所有行,该子组已经由t2.t2分组分组.

TL; DR:sql server中的group by子句从左到右具有前导,在分组中创建分组.如果将聚合应用于子组中的列,则聚合将神奇地(非常逻辑地,如果您了解sql引擎)适用于子组中的每个项目,并从每个新子组实例开始.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读