Я не получаю результат от хранимой процедуры
я пытаюсь реализовать фильтр, я передаю параметр из своего кода
следующая строка, которую я отправляю в процедуру хранения
and tsn.SurveyorName=''Keval Kakdiya''
ниже приведена процедура моего магазина
процедура
(filterText varchar(8000)
SELECT DISTINCT tsd.State AS State, IFNULL(tsn.SurveyorName,0) SurveyorName, IFNULL(tni.NoOfInt, 0) NoOfInt, IFNULL(tsr.SampleReceived, 0) SampleReceived, IFNULL(tce.CancelledEntries, 0) CancelledEntries, IFNULL(ta.Approved, 0) Approved, IFNULL(td.DisApproved, 0) DisApproved FROM tblsurveyordistrict tsd LEFT JOIN tblNoOfInt tni ON tsd.State = tni.State LEFT JOIN tblSampleReceived tsr ON tsd.State = tsr.State LEFT JOIN tblSurveyorName tsn ON tsd.State = tsn.State LEFT JOIN tblCancelledEntries tce ON tsd.State = tce.State LEFT JOIN tblApproved ta ON tsd.State = ta.State LEFT JOIN tblDisapproved td ON tsd.State = td.State where 1=1 ' , filterText, ' // i am passing filter text here i dont know what this statement is doing ORDER BY tsd.State;
я не получаю никакой записи та же самая строка выше я вставляю вот так она работает
SELECT DISTINCT tsd.State AS State, IFNULL(tsn.SurveyorName,0) SurveyorName, IFNULL(tni.NoOfInt, 0) NoOfInt, IFNULL(tsr.SampleReceived, 0) SampleReceived, IFNULL(tce.CancelledEntries, 0) CancelledEntries, IFNULL(ta.Approved, 0) Approved, IFNULL(td.DisApproved, 0) DisApproved FROM tblsurveyordistrict tsd LEFT JOIN tblNoOfInt tni ON tsd.State = tni.State LEFT JOIN tblSampleReceived tsr ON tsd.State = tsr.State LEFT JOIN tblSurveyorName tsn ON tsd.State = tsn.State LEFT JOIN tblCancelledEntries tce ON tsd.State = tce.State LEFT JOIN tblApproved ta ON tsd.State = ta.State LEFT JOIN tblDisapproved td ON tsd.State = td.State where 1=1 and tsn.SurveyorName=''Keval Kakdiya'' // this is working ORDER BY tsd.State;
может ли кто-нибудь мне помочь
Что я уже пробовал:
я перепробовал все, но это не работает
F-ES Sitecore
Вы не можете динамически добавлять предложения where к такому оператору. Либо постройте весь SELECT в виде строки и используйте EXEC для ее выполнения, либо используйте оператор switch\case\or для обслуживания списка известных возможных полей в предложении where. Если вы загуглите "t-sql dynamic where clause", вы найдете различные способы сделать это.
ZurdoDev
Где 1 = 1 означает, что все записи будут возвращены.
У вас есть 2 одиночные кавычки. Почему? Это говорит мне о том, что мы не видим ваш точный код, а вместо этого создаем строку sql и выполняем ее.
Вместо этого создайте хранимую процедуру и используйте параметры.