Как я могу оптимизировать свой запрос ? и у меня есть такая ошибка : преобразование не удалось при преобразовании 'text' в int
Объявить таблицу @t_sup (
sup_id инт,
login_name varchar(128),
sup_level varchar(128),
process_code varchar(128)
)
--Объявить @contact_id как NVARCHAR(50); установить @contact_id = '7984';
--Объявить @imp_id как NVARCHAR(50); установить @imp_id = '202548';
Вставить в @t_sup (sup_id, login_name)
Выберите s.sup_id, COALESCE(ls.login_name, 'root')
От t_sup_supplier s
Левое соединение t_usr_login_securable ls на ls.sec_id=s.sec_id и ls.profil_code='sup_owner'
Левое соединение t_wfl_process_execution pe на pe.tdesc_name='t_sup_supplier' и pe.x_id=CAST(s.sup_id AS varchar(128))
Где именно s.imp_id=@imp_id --и pe.process_code равен нулю
Выберите * из @t_sup
Обновление ts
Набор sup_level=л.lvl_code
От @t_sup ts
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
Выберите ts.sup_id, MAX(lvl_order) в качестве min_lvl_order
От @t_sup ts
Внутреннее соединение t_sup_supplier_level sl на sl.sup_id=ts.sup_id
Внутреннее соединение t_pbi_level l на l.lvl_code=sl.lvl_code
Группа по ts.sup_id
) Как ml на ml.sup_id=ts.sup_id
Внутреннее соединение t_pbi_level l на l.lvl_order=ml.min_lvl_order и l.dim_code='sup'
-- Декабрь
Объявите @process_code как VARCHAR(50)
SELECT @contact_id = COALESCE(usr.contact_id, 1)
От t_sup_supplier s
Внутреннее соединение t_usr_login как usr на usr.login_name = s.login_name_created
Где именно s.imp_id=@imp_id
Выберите @process_code = process_code из t_wfl_process_x, где tdesc_name = 't_sup_supplier' --и process_code не является нулевым
-- Mise à jour WFL SUPPLIER V2 - Etape Création (INI)
Если не существует (выберите * от t_wfl_worklist жилой внутреннее соединение t_sup_supplier s на ов.sup_id = жилой.x_id, где 1=1 и жилой.process_code = 'SUPPLIER_V2 и жилой.act_code = 'Ини' и жилой.x_id = С. sup_id и s.imp_id=@imp_id)
Вставить в t_wfl_worklist(process_code, x_id, tdesc_name, act_code, contact_id_performer,wli_date_ini, wli_date_val, wli_comment)
Выберите @process_code, С. sup_id, 't_sup_supplier', 'Ини', @contact_id, getdate(), то функцию getdate(), @contact_id+функции getdate()
От dbo.t_sup_supplier как внутреннее соединение t_wfl_worklist WFL на жилой.x_id = С. sup_id где s.imp_id=@imp_id и contact_id_performer = @contact_id и process_code = 'SUPPLIER_V2'--и process_code не null
Еще t_wfl_worklist обновить набор contact_id_performer = @contact_id, wli_date_val = getdate(), то wli_comment = @contact_id+функции getdate()
Из t_wfl_worklist внутреннее соединение t_sup_supplier как S на S.sup_id=t_wfl_worklist.x_id где x_id = С. sup_id и act_code = 'Ини' и S.imp_id= @imp_id и contact_id_performer = @contact_id
-- Я поставщик à жилой жур В2 - этапе проверки группы компаний (РСК)
Если не существует (выберите * из t_wfl_worklist wfl INNER JOIN t_sup_supplier s on s.sup_id = wfl.x_id LEFT JOIN t_sup_supplier_level lvl on s.sup_id=lvl.sup_id
Где 1=1 и process_code = 'SUPPLIER_V2 и act_code = 'РСК' и x_id = С. sup_id и s.imp_id=@imp_id и лвл.lvl_code &ЛТ;&ГТ; 'улет')
Что я уже пробовал:
я попытался отладить себя, но..... я не могу
Santosh kumar Pithani
Как мы можем найти проблему в этом запросе?Его проблема преобразования убедитесь, что типы данных, используемые для условия соединения, либо предоставляют некоторые тестовые данные.
Naga Sindhura
Левое соединение t_wfl_process_execution pe на pe.tdesc_name='t_sup_supplier' и pe.x_id=CAST(s.sup_id AS varchar(128))
что такое тип данных столбца pe.x_id int/varchar. Если это int, то почему вы конвертируете и затем сравниваете его с s.sup_id(CAST(s.sup_id AS varchar(128))).
или где-то в данных вы пытаетесь преобразовать данные varchar, которые содержат какие-то символы, и вы преобразуете эти данные в int.