mysql - 加入按日期排序的 MYSQL 中的两个不同列表?

标签 mysql

你好社区我正在使用 MySql 数据库,我有两个包含不同记录的列表,但我希望它们一个接一个地放在一起,具体取决于日期来源以及我在下面显示的内容:

第一个列表:

SELECT  p.ICODPRESTAMO, 
    p.NCAPITAL, 
    (p.NMONPRESTAMO - p.NCAPITAL) AS INTERES, 
    DATE_FORMAT(p.TSFECCREACION,'%d/%m/%Y') AS FECHA
FROM TABPRESTAMO p
WHERE  p.ICODPADPRESTAMO IS NOT NULL 
    AND p.ICODPERBENEFICIARIA = 2
    AND p.SICODESTADO = 1;

SQL 返回:

ICODPRESTAMO    NCAPITAL    INTERES FECHA
2   2000.00 200.00  01/02/2014
3   1650.00 247.50  04/06/2014
4   6000.00 900.00  09/06/2014
5   60.00   0.00    22/07/2014
6   600.00  48.00   06/01/2014
7   1500.00 112.50  28/03/2014
8   1600.00 64.00   24/06/2014
9   525.00  0.00    13/09/2014
18  582.00  0.00    03/10/2015

第二个列表:

SELECT  a.ICODAMORTIZACION,
          a.NABOMONTO,
          DATE_FORMAT(a.TSFECCREACION,'%d/%m/%Y') AS FECHA
FROM TABAMORTIZACION a
WHERE  a.ICODPRESTAMO = 1
    AND a.SICODESTADO = 1;

SQL 返回:

ICODAMORTIZACION    NABOMONTO   FECHA
1   200.00  16/03/2014
2   200.00  23/03/2014
3   200.00  30/03/2014
4   200.00  13/04/2014
5   200.00  20/04/2014
6   150.00  27/04/2014
7   150.00  04/05/2014
8   200.00  10/05/2014
9   200.00  17/05/2014
10  150.00  24/05/2014
11  232.00  15/09/2014

我的目标是统一注册彼此,依赖于FECHA

如下图:

http://i.stack.imgur.com/JsH5F.jpg

按如下方式开发我的程序:

DELIMITER //
CREATE PROCEDURE reporte4(cod_prestamo INT, cod_per_beneficiaria INT)
BEGIN

    -- Declaración de variables
    DECLARE ID_PRESTAMO INT;
    DECLARE CAPITAL DECIMAL(8,2);
    DECLARE PRESTAMO DECIMAL(8,2);
    DECLARE FECHA VARCHAR(10);

    -- Definición de la consulta
    DECLARE prestamo_beneficiario CURSOR FOR
    SELECT  p.ICODPRESTAMO, 
        p.NCAPITAL, 
        (p.NMONPRESTAMO - p.NCAPITAL) AS INTERES, 
        DATE_FORMAT(p.TSFECCREACION,'%d/%m/%Y') AS FECHA
    FROM TABPRESTAMO p
    WHERE  p.ICODPADPRESTAMO IS NOT NULL 
         AND p.ICODPERBENEFICIARIA = 2
         AND p.SICODESTADO = 1;

    -- Declaración de un manejador de error tipo NOT FOUND
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET @hecho = TRUE;

    -- Abrimos el cursor
    OPEN prestamo_beneficiario;

    -- Comenzamos nuestro bucle de lectura
    loop1: LOOP

    -- Obtenemos la primera fila en la variables correspondientes
    FETCH prestamo_beneficiario INTO ID_PRESTAMO, CAPITAL, PRESTAMO, FECHA;

    -- Si el cursor se quedó sin elementos,
    -- entonces nos salimos del bucle
    IF @hecho THEN
    LEAVE loop1;
    END IF;

    -- Guardamos el acumulado de ventas y el código
    -- si el vendedor actual tiene mejores resultados
    -- SET FECHA_EVA = FECHA_EVA + FECHA;

    -- SELECT FECHA_EVA;

    END LOOP loop1;

    -- Cerramos el cursor
    CLOSE prestamo_beneficiario;

   SELECT prestamo_beneficiario;

END //
DELIMITER ;

我希望你能建议我应该如何处理这个案子。

最佳答案

然后使用ASC顺序

SELECT
    `column_id` AS `id`,
    `column_name` AS `name`,
    `column_date` AS `date`
FROM `table_name`

UNION
SELECT
    `column_id` AS `id`,
    `column_name` AS `name`,
    `column_date` AS `date`
FROM `second_table_name`

ORDER BY `date` ASC;

关于mysql - 加入按日期排序的 MYSQL 中的两个不同列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985322/

相关文章:

ClearDB、Heroku 中的 MySQL 时区

mysql - 使用子查询保存查询结果的最佳方法是什么?

php - 从 MySQL 表创建数组

mysql - 分层 MariaDB/MySQL 递归查询(仅限父级)

mysql - 如何从mysql中的连接表中获取不相等的行?

mysql - 使用查询连接多个表

PHP/HTML - 没有登录但来自导航链接的个人资料页面

PHP/MySQL 在按钮按下/单击时运行查询

php - Doctrine 2 创建多个记录

mysql:concat的特殊用途