【问题标题】:MySQL SUM QueryMySQL SUM 查询
【发布时间】:2011-04-10 17:01:34
【问题描述】:

您好,我有一个正在努力解决的问题,这是我第一次遇到这种类型的问题。 我有两个表,如下所示。

xid是parent_tbl1的主键,xid是child_tbl2的外键

parent_tbl1

xid pub 
1    1    
2    1    
3    0    
4    1

child_tbl2

id ttype fno xid  qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1  
5  A       1    3    2
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1

以下是部分查询的解释,然后需要组成整个查询。

我需要 child_tbl2 中 qnty 的总和:

1) 谁的父母的酒吧是 '1' 因此,id 5 从 child_tbl2 中剔除,这是因为 xid 3 在 parent_tbl1 中为 0

结果: child_tbl2

id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1

2) AND 谁的父表在子表中有 ttype 'A' 因此,id 3 被从现有结果中剔除,因为 id 3 的 ttype 是 B

结果: child_tbl2

id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1

3) 并且谁的父母在 child_tbl2 中有 '0' 作为 fno 因此,id 4、6 和 7 从现有结果中排除,这是因为在它们的 fno 之一中没有找到 0,而在 xid 1 的 fno 中找到了 0

结果: child_tbl2

id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
8  A       1    1    1

查询的答案应该是 4

以下是我所拥有的。

SELECT sum(child_tbl2.qnty), parent_tbl1.xid, parent_tbl1.pub, child_tbl2.ttype, child_tbl2.fno, child_tbl2.xid 
FROM parent_tbl1, child_tbl2
WHERE parent_tbl1.xid = child_tbl2.xid
AND parent_tbl1.pub = '1'
AND child_tbl2.ttype = 'A'

AND child_tbl2.fno ? 

如果可能的话,我不知道如何告诉 dbms (MySQL) 检查零是否是 fno 之一。 如果我说“AND child_tbl2.fno = '0'”,我会说结果的 fno 应该是 0。我不希望这样,我需要零作为 fno 之一,以便查询对所有的求和特定 xid 中的 qnty

【问题讨论】:

    标签: mysql


    【解决方案1】:
    SELECT SUM(DISTINCT src.qnty) as qnty
    FROM tbl2 AS src
    INNER JOIN tbl1 AS pub
      ON src.xid=pub.xid
    INNER JOIN tbl2 AS fno
      ON pub.xid=fno.xid
    WHERE pub.pub=1
      AND src.ttype='A'
      AND fno.fno=0
    

    【讨论】:

    • 嗨,“src.qty”应该是“child_tbl2”吗?
    • 没有。 AS 为表或列提供了应在任何地方使用的别名。
    • 我用 parent_tbl1 替换了 tbl1,用 child_tbl2 替换了 tbl2,这是我得到的错误 - #1054 - 'field list' 中的未知列 'src.qty' 有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 2015-02-22
    • 2015-03-25
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多