У меня проблема, когда переменная не получает задание select.Переменная не устанавливается по выбору
Выбор объединяет переменную таблицы @contracts (которая используется для управления циклом), а затем соединяется с реальными таблицами контрактной и контрактной строк.
мой выбор это:
select top 1
@contract_id = c.contract_id
, @account = ch.account
, @service = cl.service
, @model = cl.model
, @serial = cl.serial
, @contract = ch.contract
from
@contracts c
inner join contractline cl on c.contract_id = cl.contract_id
inner join contractheader ch on cl.contract = ch.contract
where
cl.contract_id = @contract_id
Но когда я отборный @contract_id сказать, что я получаю NULL
назад, как и все мои переменные.
Я сделал простой select * from @contracts c inner join contractline cl on c.contract_id = cl.contract_id inner join contractheader ch on cl.contract = ch.contract
, и это возвращает ровно 1 строку со значениями во всех правильных местах, без нулей в выбранных значениях.
Что я сделал не так?
Можете ли вы опубликовать немного больше кода, например. где вы получаете доступ к переменной. Вы также уверены, что есть строка, когда вы включаете предложение where в свой второй оператор select? – Paddy
имеет значение '@ contract_id', потому что вы используете его в предложении where. –
Именно в этом случае предложение where не должно быть. Глупая ошибка. – themaninthesuitcase