首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql自连接

问mysql自连接
EN

Stack Overflow用户
提问于 2012-03-08 10:50:08
回答 5查看 298关注 0票数 0

我有一个名为receiving的表,其中包含4列:

代码语言:javascript
复制
id, date, volume, volume_units

体积单位始终存储为"Lbs“或"Gals”的值。

我正在尝试编写一个SQL查询,以获取特定日期范围内以Lbs和Gals表示的卷的总和。类似这样的东西:(这不起作用)

代码语言:javascript
复制
SELECT sum(p1.volume) as lbs, 
p1.volume_units, 
sum(p2.volume) as gals, 
p2.volume_units 
FROM receiving as p1, receiving as p2
where p1.volume_units = 'Lbs'
and p2.volume_units = 'Gals' 
and p1.date between "2012-01-01" and "2012-03-07" 
and p2.date between "2012-01-01" and "2012-03-07" 

当我单独运行这些查询时,结果相差很远。我知道这里的连接是错误的,但我不知道我做错了什么来修复它。

EN

回答 5

Stack Overflow用户

发布于 2012-03-08 10:55:57

代码语言:javascript
复制
  SELECT SUM(volume) AS total_sum,
         volume_units
    FROM receiving
   WHERE `date` BETWEEN '2012-01-01'
                    AND '2012-03-07'
GROUP BY volume_units
票数 5
EN

Stack Overflow用户

发布于 2012-03-08 10:55:18

您可以通过在SUM中使用IF(condition,then,else)在一个查询中实现这一点

代码语言:javascript
复制
SELECT SUM(IF(volume_units="Lbs",volume,0)) as lbs,
       SUM(IF(volume_units="Gals",volume,0)) as gals,
FROM receiving
WHERE `date` between "2012-01-01" and "2012-03-07" 

这只会在单位正确的情况下添加volume。

票数 1
EN

Stack Overflow用户

发布于 2012-03-08 11:01:40

此查询将显示每个ID的总计。

代码语言:javascript
复制
SELECT  s.`id`, 
        CONCAT(s.TotalLbsVolume, ' ', 'lbs') as TotalLBS,
        CONCAT(s.TotalGalVolume, ' ', 'gals') as TotalGAL
FROM
    (
        SELECT  `id`, SUM(`volume`) as TotalLbsVolume
        FROM    Receiving a INNER JOIN
                    (
                        SELECT  `id`, SUM(`volume`) as TotalGalVolume
                        FROM    Receiving
                        WHERE   (volume_units = 'Gals') AND
                                (`date` between '2012-01-01' and '2012-03-07')
                        GROUP BY `id`
                    ) b ON a.`id` = b.`id`
        WHERE   (volume_units = 'Lbs') AND
                (`date` between '2012-01-01' and '2012-03-07')
        GROUP BY `id`
    ) s
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9612272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档