mysql - 我该如何修复这个查询 - Mysql

标签 mysql sql

我的查询有一点问题,这是我的表格:

CREATE TABLE IF NOT EXISTS `realizado` (
`cod` int(11) NOT NULL AUTO_INCREMENT,
`datedoc` date NOT NULL,
`bank` int(11) NOT NULL,
`bankValue` float NOT NULL,
PRIMARY KEY (`cod`));

INSERT INTO `realizado` (`cod`, `datedoc`, `bank`, `bankValue`) VALUES
(152, '2014-10-22', 22, 1000),
(153, '2014-10-22', 23, 2000),
(154, '2014-10-22', 24, 3000),
(200, '2014-10-23', 22, 950),
(201, '2014-10-25', 22, 100),
(202, '2014-10-25', 23, 2050),
(203, '2014-10-24', 22, 150),
(204, '2014-10-24', 24, 3800);

问题是:我需要从日期获取bankValue,并且仍然按银行分组,如下所示:

SELECT bank, bankValue
FROM realizado
WHERE datedoc <= '2014/10/25'
GROUP BY bank

我得到的最接近的是:

SELECT r.bank, (select bankValue from realizado r2 where max(r.cod) = r2.cod) as Value
FROM realizado as r
WHERE r.datedoc <= '2014/10/25'
GROUP BY r.bank

如果你喜欢的话,这是 SQL Fiddle -> http://sqlfiddle.com/#!2/83e309/2

我期望的结果是(22 - 100/23 - 2050/24 - 3800)

最佳答案

给你! (感谢您使用 DDL 和引导数据设置 sqlFiddle :)

工作 sqlFiddle: http://sqlfiddle.com/#!2/83e309/10

SELECT  a.*
FROM    realizado a
        INNER JOIN
        (
            SELECT  bank, MAX(datedoc) datedoc
            FROM    realizado
            GROUP   BY bank
        ) b ON a.bank = b.bank AND
                a.datedoc = b.datedoc

关于mysql - 我该如何修复这个查询 - Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558541/

相关文章:

mysql - 我如何像格式化程序一样构造 SQL 代码,以使其通过 SQL 命令更好地读取到数据库

sql - Rails 3 在没有模型的情况下执行自定义 SQL 查询

Mysql LEFT JOIN 与可选关系父<->子表结合使用不起作用

Mysql仅修改注释列

mysql - 使用原始 SQL 查询从数据库中获取满足我需求的所有记录

php - 从表中找出相关数据

wordpress - 摆脱 WordPress MySQL 查询中的文件排序

MySQL错误: duplicate column

mysql - 在 HP ALM 的合并两个查询中需要帮助

sql - 如何找到数据库条目之间的循环?