MySQL-求和联接表列

MySQL-求和联接表列,mysql,Mysql,我正在尝试做一个稍微复杂的查询,我几乎有我所需要的,除了我的一个连接,我没有得到预期的数据 我的尝试 SELECT email.*, email_type.*, email_subtype.*, email_dailytotal.*, SUM(email_dailytotal.fullconversions - (email_dailytotal.duplicates + email_dailytotal.invalids)) as validleads, email_week.*, SUM(a

我正在尝试做一个稍微复杂的查询,我几乎有我所需要的,除了我的一个连接,我没有得到预期的数据

我的尝试

SELECT email.*, email_type.*, email_subtype.*, email_dailytotal.*, SUM(email_dailytotal.fullconversions - (email_dailytotal.duplicates + email_dailytotal.invalids)) as validleads, email_week.*, SUM(adjustment) as total_adjustment, email_costmethod.*
FROM email 
LEFT JOIN email_type on email.type = email_type.type_id
LEFT JOIN email_subtype on email_subtype.type_id = email_type.type_id 
LEFT JOIN email_dailytotal on email_dailytotal.email_id = email.email_id 
LEFT JOIN email_week on email_week.email_id = email.email_id 
LEFT JOIN email_costmethod on email_costmethod.costmethod_id = email.costmethod
WHERE email.email_id = '12163'
AND business IN ("group", "dead") 
AND agency="MFC" 
AND start_date >="2013-02-01" 
GROUP BY email.email_id, email_dailytotal.oeyearno
ORDER BY email.email_id DESC
除了加入
email\u dailytotal
email
,我几乎得到了我想要的东西:

LEFT JOIN email_dailytotal on email_dailytotal.email_id = email.email_id 
因为我只从
电子邮件中获得一行,而不是该活动的所有行

我可以通过以下基本查询完成此操作:

SELECT SUM(fullconversions) FROM email_dailytotal WHERE email_id = 12163
其中结果是
27
,但在我的整个查询中,我得到的第一行恰好是
1

电子邮件的最小结构是:

email_id | fullconversions  | summarydate |
因此,它包含活动每天的数据:

12163 |  1 | 2013-02-27
12163 | 10 | 2013-02-26
12163 | 15 | 2013-02-25
12163 |  1 | 2013-02-22
所以在我的加入中,我得到的是最后一行,而不是总和

谁能指出我错在哪里

另外,我为这个问题的混乱道歉,我试图制作一个sqlfiddle,但因为我的构建模式超过8000个字符,所以无法工作,如果它能帮助任何人回答,我将它包括在下面

我通常会显示表格的结构,但要将其格式化到合理的标准,我需要几个小时

数据


基本问题是您的
SELECT
子句和
groupby
子句不一致

对于初学者,请尝试按以下方式进行更改:

SELECT email.email_id,
  SUM(email_dailytotal.fullconversions - (email_dailytotal.duplicates + email_dailytotal.invalids)) as validleads, 
  SUM(adjustment) as total_adjustment
...
GROUP BY email.email_id

我还建议您使用sql_模式,这样MySQL就不会让您执行这样的查询。

请删除所有这些内容,并将其移动到a中。+1,我从未听说过这种神奇的sql小提琴,这是一个好主意@AarolamaBluenk-请看问题
P.S.我为这个问题的混乱道歉,我试图制作一个sqlfiddle,但因为我的构建模式超过8000个字符,所以无法工作,如果它能帮助任何人回答的话,我将它包括在下面。
@martincarlin87 Pastebin?@AarolamaBluenk done,只是我一直认为最好是在问题本身,而不仅仅是一个外部来源。