来自2个不同表的2个不同非匹配列的总和

时间:2017-02-09 11:41:32

标签: php mysql

这是关于SO的第一个问题,所以如果我不是非常明确的话请承担!我试图从2个表中总结2列的值。两个表值都有一个名为' imid'的公共ID。这些酰亚胺进一步划分为' pmid' (比如说1个imid可以有一个或多个pmids)。两个表都有不同的结构。我想要对table1中的1列和表中的另一列进行求和(将其用于php计算)。当我尝试JOIN时,它总是给我一个超时错误。查询如下。

SELECT  F.`imid` AS imid, SUM( F.Impression ) AS si, D.accmgr AS accmgr, D.cmname AS cmname,sum(D.Item_Impression_Cap) AS sim
FROM trasactions F, rawdata D
WHERE F.`imid` = D.`imid`
AND F.EntryDate LIKE '2017-%-%' 
GROUP BY D.`imid`, F.`imid` ORDER BY F.`imid` ASC

我得到了结果,但是甚至没有接近正确的数字。(例如)印象为6,557,824而不是特定的imid的1,233,287。

不确定我错在哪里!任何帮助都会很棒......

编辑:感谢您的回复......我设法编写了查询...

SELECT  F.`imid`, F.si , F.imname,D.Item_Start_Date ,D.sim,  D.Item_End_Date, D.accmgr, D.cmname 
FROM (SELECT `imid` AS imid, SUM(Impression ) AS si, adname AS imname, EntryDate  FROM trasactions GROUP BY imid) F LEFT JOIN
(SELECT imid,Item_Start_Date, Item_End_Date, accmgr AS accmgr, cmname AS cmname, sum(Item_Impression_Cap) AS sim FROM rawdata GROUP BY imid) D ON    F.`imid`=D.`imid`
WHERE D.cmname IS NOT NULL
GROUP BY F.`imid`
ORDER BY F.`imid` ASC


现在有一个新问题!我正在根据从上面的查询派生的数组值进行一些计算...(例如)$pacing = $row['si']/$avgday*100;

说我正在列出'起搏'对于所有活动的项目。是否可以从变量中计算值。 (例如)想要显示$ pacing小于100%的项目数。甚至有可能做到这一点!再次感谢。

0 个答案:

没有答案