У меня есть запрос, который использует вспомогательный запрос с теми же параметрами, так что это выглядит примерно так:ADO Повторные SQL Параметры
strSelect = _
"SELECT a.State, a.FirstName, a.LastName, b.JobTitle " & _
"FROM apples a " & _
"LEFT JOIN (" & _
"SELECT a.RecordNumber, " & _
"CASE WHEN j.JobTitle IS NULL THEN j.JobTitle2 ELSE j.jobtitle END " & _
"FROM apples a " & _
"LEFT JOIN jobs j ON j.RecordNumber = a.RecordNumber " & _
strWhere & _
") b ON b.RecordNumber = a.RecordNumber "
strWhere = _
"WHERE a.JobState = ? " & _
"AND a.JobDate = ? "
Суб-запрос в реальной жизни менее бессмысленно, чем один в пример.
Вопрос здесь, если я повторяю strWhere
, то есть ли способ заставить параметры работать для итогового заявления strSQL = strSelect & strWhere
? Проблема в том, что у меня есть два параметра, но они повторяются, поэтому для оператора strSQL
было бы четыре параметра, но я бы предпочел не повторять свои параметры, когда я их объявляю.
У меня такое чувство, что мне не хватает чего-то довольно очевидного здесь. Какие-либо предложения?
Не могли бы вы просто перенести все это на хранимую процедуру? Это не только упростило бы кодирование, но и обеспечило бы лучшее разделение между приложением и данными. –
У меня есть доступ только для чтения к этой базе данных. – JMcD