0
ALTER PROCEDURE [dbo].[ViewSo]
@Dt1 as datetime,
@Dt2 as datetime,
@CusName as nvarchar,
@so_no as nvarchar
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM
(SELECT
0 as stat,
m.id, f.id as fg_id, f.fg_des, m.so_no,
Replace(CONVERT(NVARCHAR, CAST(m.so_date AS DATE) , 106),' ','-') AS so_date,
Convert(NVARCHAR,CAST(m.so_date AS DATE),101) AS so_date1,
m.cus_name, m.so_cus_id, m.doc_no, m.sale_person, m.so_rem,
f.fg_des AS eXP1, f.fg_qty,
CONVERT(VARCHAR(10), CAST(f.req_date AS DATE), 101) AS req_date,
CASE
WHEN COALESCE (q.tot_req_qty, 0) < f.fg_qty
THEN 'Not Updated'
ELSE 'Updated'
END AS req_qty_stat,
'SO No :' + CONVERT(varchar(15), m.so_no) + '/SO Date :' + CONVERT(varchar(15), REPLACE(CONVERT(NVARCHAR, CAST(m.so_date AS DATE), 106), ' ', '-')) + '/Cus Name :' + CONVERT(varchar(15), m.cus_name) + '/Sales Prsn :' + CONVERT(varchar(15), m.sale_person) AS filter ,
f.fg_no,m.so_stat,
m.del_flag, m.st_stat, m.st_rem
FROM
so_mas AS m
INNER JOIN
so_fg AS f ON m.id = f.so_id
LEFT OUTER JOIN
(SELECT
fg_id, SUM(req_qty) AS tot_req_qty
FROM
fg_qty
WHERE
(del_flag = 0)
GROUP BY fg_id) AS q ON q.fg_id = f.id
WHERE
m.del_flag = 0) AS S
WHERE
CONVERT(datetime, s.so_date) BETWEEN @Dt1 AND @Dt2
AND S.cus_name LIKE
CASE WHEN @CusName = '' THEN S.cus_name
ELSE +'%' + @CusName + '%'
END
ORDER BY
s.so_date;
END
Это моя хранимая процедура, передаваемая как заявление в случае. Если запустить запрос, он работает нормально. Если я использовал в качестве хранимой продукции приводит к неправильному результату.Сохраненная процедура, передаваемая как заявление в случае
Пожалуйста, помогите мне решить.
Пожалуйста, попробуйте создать * минимальный * пример того, что вы пытаетесь сделать. На данный момент я понятия не имею. Кроме того, вы почти наверняка неверно указали свои параметры, если только вы * намерение * не означает, что '@ CustNo' и' @ so_no' должны содержать только до 1 символа. Пожалуйста, см. [Плохие привычки пинать: объявление VARCHAR без (длина)] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without- length.aspx) –
Ваш код очень трудно прочитать. Удостоверьтесь, что вы отформатируете его лучше, чтобы мы могли четко читать и знать, что не так. Кроме того, я заметил несколько предложений WHERE, которые я предлагаю вместо этого использовать HAVING. – Husein