Нет результата от хранимой процедуры - PullRequest
0 голосов
/ 27 июня 2019

Это мой запрос при использовании хранимой процедуры, но он не дает результата. но когда я использую один запрос, который находится внутри процедуры. это имеет результат. я хочу эту хранимую процедуру, чтобы избежать длинной строки запроса, а затем перенести ее в мое представление данных. У меня много поиска по поводу хранимой процедуры с параметром, вот как я строю этот запрос.

CALL BillingStorageParticulars(
1, '2019-06-16', '2019-06-30',
@entryid,
@contrno,
@type_code,
@evnt_in,
@evnt_out,
@freetime,
@storage_rate,
@lolo_rate,
@cleaning,
@rate_id,
@rate_validity,
@rendered_days
);

SELECT
@entryid AS entryid,
@contrno AS contrno,
@type_code AS type_code,
@evnt_in AS evnt_in,
@evnt_out AS evnt_out,
@freetime AS freetime,
@storage_rate AS rate,
@lolo_rate AS lolo,
@cleaning AS cleaning,
@rate_id AS rateid,
@rate_validity AS validity,
@rendered_days AS rendered;

А это моя процедура

USE `ems_2019`;
DROP procedure IF EXISTS `BillingStorageParticulars`;

DELIMITER $$
USE `ems_2019`$$
CREATE DEFINER=`ems2019`@`%` PROCEDURE `BillingStorageParticulars`(
IN  clientid            INT(5),
IN  date_start          DATE,
IN  date_end            DATE,
OUT entryid             INT,
OUT contrno             TEXT(100),
OUT type_code           TEXT(50),
OUT evnt_in             DATE,
OUT evnt_out            DATE,
OUT freetime            INT,
OUT storage_rate        DECIMAL(6,2),
OUT lolo_rate           DECIMAL(6,2),
OUT cleaning            DECIMAL(6,2),
OUT rate_id             INT(7) zerofill,
OUT rate_validity       DATE,
OUT rendered_days       INT
)
BEGIN

SELECT entry_id as entry_id, cd.contr_no, cd.contrtype_code, evnt_in, evnt_out, 
        rate.days_freetime, rate.storage_rate, rate.lolo_rate, rate.sweeping + rate.waterwash + rate.chemicalwash as cleaning_rate, rate.rate_id, rate.validity,
        DATEDIFF(IF(evnt_out='0000-00-00 00:00:00', NOW(),evnt_out),evnt_in) + 1 as rendered_days

INTO    entryid,
        contrno,
        type_code,
        evnt_in,
        evnt_out,
        freetime,
        storage_rate,
        lolo_rate,
        cleaning,
        rate_id,
        rate_validity,
        rendered_days

FROM entry_list e_l

INNER JOIN (
    SELECT contr_id, contr_no, c.client_id,ct.contrtype_id, ct.contrtype_code, ct.contrtype_size
    FROM contr_list cl
    INNER JOIN client_profile c on c.client_id = cl.client_id
    INNER JOIN contr_type ct on ct.contrtype_id = cl.contype_id
    WHERE c.client_id = clientid
) cd on cd.contr_id = e_l.container_id

INNER JOIN (
    SELECT rate_id,storage_rate,lolo_rate,days_freetime,sweeping,waterwash,chemicalwash,contr_type_id,validity FROM storage_service_rates where rate_stat = 1 AND client_id = 1
) rate on rate.contr_type_id = cd.contrtype_id

WHERE evnt_in between date_start AND date_end OR evnt_out between date_start AND date_end
OR evnt_out = '0000-00-00 00:00:00';


END$$

DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...