Я выполняю задание tSQL, и одно из требований состоит в том, чтобы проверить, существует ли введенный charity ID, и, если не вернуть ошибку, тогда я должен проверить, если Tax Date благотворительной организации находится в текущем году. Это то, что я пробовал

IF NOT EXISTS (SELECT CharityID FROM CharityTbl WHERE [CharityID] = '@CharityID')
begin
  raiserror ('Sorry Invalid Charity ID', 16,1)
  return 99 
end
--if the TaxNoDateOfIssue for the charitytbl is not in the current year raise an error
IF NOT Exists (Select TaxNoDateOfIssue FROM CharityTbl WHERE YEAR(TaxNoDateOfIssue) = YEAR(getdate())

Я не уверен, как мне написать второй оператор if, чтобы любая помощь была оценена по достоинству

2
Kevin 6 Май 2016 в 13:20

2 ответа

Лучший ответ

Вам просто нужно добавить предложение where в тот же запрос. См. Ниже запрос.

IF NOT EXISTS (SELECT CharityID FROM CharityTbl WHERE [CharityID] = '@CharityID' or YEAR(TaxNoDateOfIssue) = YEAR(getdate())
begin
 raiserror ('Sorry Invalid Charity ID', 16,1)
 return 99 
end
2
Sandeep Kumar 6 Май 2016 в 10:25

Я надеюсь, что это именно то, что вы ожидаете.

IF EXISTS (SELECT CharityID FROM CharityTbl WHERE [CharityID] = '@CharityID') --  fist condition
BEGIN
IF NOT Exists (Select TaxNoDateOfIssue FROM CharityTbl WHERE YEAR(TaxNoDateOfIssue) = YEAR(getdate()) -- second condition if 1st success
BEGIN
RAISERROR('Sorry Invalid Tax Year', 16,1)
RETURN 99
END
END
ELSE
BEGIN
RAISERROR('Sorry Invalid Charity ID', 16,1) --  if 1st fails
RETURN 99 
END
2
Munna Extreme 6 Май 2016 в 10:31