用if语句查询sql

Bri*_*fin 3 mysql sql conditional

我想提出一个报告收入的查询.它需要2个表:点击和优惠.收入按要约的转换次数*佣金计算.转换存储在点击表中名为"conversionDate"的字段中,每个商品的佣金存储在商品表中.

在为要约添加收入时,查询中需要有条件忽略任何未转换的点击(意味着conversionDate为NULL).

我得到的东西需要一些调整,因为它没有给出正确的收入价值:

SELECT o.name offer,count(c.id)点击,if(不是isnull(c.conversionDate),收入=收入+ o.commission,收入)收入来自点击c,提供o其中c.offerID = o.ID GROUP BY o.ID;

我现在有3个虚拟记录,其中2个是转换.佣金设置为1,收入应为2.我得到的结果是1.我是在正确的轨道上还是收入计算是某种子查询还是什么?

Bil*_*win 6

我这样编写查询:

SELECT o.name AS offer, COUNT(c.id) AS clicks, 
  SUM( IF(c.conversionDate IS NOT NULL, o.commission, NULL) ) AS revenue 
FROM offers o JOIN clicks c ON (c.offerID=o.ID)
GROUP BY o.ID;
Run Code Online (Sandbox Code Playgroud)

这是另一种解决方案,但查询结果中未显示没有任何转换后的点击的提供:

SELECT o.name AS offer, COUNT(c.id) AS clicks, 
  SUM(o.commission) AS revenue 
FROM offers o JOIN clicks c 
  ON (c.offerID=o.ID AND c.conversionDate IS NOT NULL)
GROUP BY o.ID;
Run Code Online (Sandbox Code Playgroud)