Рейтинг:
0
CHill60
Я сомневаюсь, что вы действительно хотите использовать КРОМЕ[^] - смотрите документацию.
Почему я в этом сомневаюсь? Потому что в вашем примере SQL вы пытаетесь использовать значения из MonthlyFeeGenrate для обновления student_balance, но ваши критерии таковы, что студент не находится в MonthlyFeeGenrate - таким образом, вы не можете получить эти значения.
Вы использовали внутреннее соединение, поэтому записи, которые не существуют в обеих таблицах, не будут представлены для обновления. Взгляните на эту статью о соединениях Визуальное представление SQL-соединений[^]
Таким образом, вы можете избавиться от Кроме и избавиться от не существует. Я предполагаю, что ты все еще хочешь сделать это только для Эйприл, так что оставь эту часть. Правильный способ сделать обновление такого соединения-использовать псевдоним таблицы, чтобы ваш запрос стал
UPDATE t1 SET Balance = t2.Balance+t2.FinalFee
FROM dbo.Student_balance AS t1
INNER JOIN MonthlyFeeGenrate AS t2 ON t1.registration_id = t2.registration_id
WHERE t2.Fee_Month='april'
Naqash Younis
нет, ты не понимаешь.
я хочу, чтобы у меня было всего три студента, и один из них заплатил взнос за апрель, и он будет обновляться в MonthlyFeeGenrate и его упоминании, что этот студент заплатил взнос за апрель .поэтому когда я нажимаю на запрос он добавит баланс в остальных двух студентов
CHill60
Этот комментарий еще менее ясен, чем ваш первоначальный пост. В своем вопросе вы пытались обновить Student_Balance, но теперь вы говорите, что пытаетесь обновить MonthlyFeeGenrate.
Попробуйте показать, какие данные вы ожидаете увидеть на каждом этапе ... до и после обновления.
Быть ясным.
Мой комментарий все еще остается в силе - я сомневаюсь, что вам нужно использовать EXCEPT, но если вы хотите, то перейдите по ссылке, которую я предоставил, и убедитесь, что вы правильно поняли синтаксис