Я унаследовал базу данных и т. Д. От другого разработчика и мне нужна помощь.
У меня есть следующая хранимая процедура:
CREATE PROCEDURE [dbo].[TESTgetSearchResults]
(
@ids varchar(100),
@Date DateTime = Null,
@Date2 DATETIME = Null,
@Sort VARCHAR(5), /* ASC or DESC */
@SortBy VARCHAR(10), /* Sorting criteria */
@Location VARCHAR(40)
)
AS
SELECT @Date = GetDate()
SELECT @Date2 = DATEADD(day,-14,GETDATE())
BEGIN
SELECT Aircraft.Id AS AircraftID, AircraftManufacturers.Name, AircraftModels.ModelName,
Aircraft.ModelSuffix, Aircraft.ImageFileName, Aircraft.Year, Aircraft.SerialNo,
Locations.DescriptionForSite, Aircraft.Description, Aircraft.Description2,
Aircraft.InfoWebAddress, Aircraft.ImageDescription, Advertisers.Id AS AdvertisersID,
Advertisers.Name AS AdvertisersName, Aircraft.AircraftDataId, Aircraft.ForSale, Aircraft.ForLease,
Aircraft.TTAF, Aircraft.ReSend, Aircraft.ReSendReason, Aircraft.Registration, Aircraft.AdType,
Aircraft.HasAlternateImage, Aircraft.AlternateImageDescription,
Aircraft.Price, AircraftModels.AircraftType, Advertisers.CurrentEMagLink, Aircraft.CurrentEMagLink,
Aircraft.Email, Aircraft.IsSold, Aircraft.SoldDate, Aircraft.DateAdded, Aircraft.ExtendedDetails,
Aircraft.LastUpdateDate, Aircraft.ImageCount, Aircraft.ContactTelephone, AircraftModels.id, Advertisers.IsPremiumAdvertiser,
Aircraft.Location, Advertisers.ContactTelephone As AdvertisersTelephone, Aircraft.EndDate, Aircraft.VideoLink,
Aircraft.Contact, Advertisers.WASSalesEmail, Advertisers.WASSalesEmail2, Aircraft.PriceNumeric,
Aircraft.PriceQualifier, Aircraft.Currency, Aircraft.AircraftDescription
FROM (((Aircraft
INNER JOIN Advertisers ON Aircraft.AdvertiserId = Advertisers.Id)
INNER JOIN AircraftModels ON Aircraft.AircraftModelId = AircraftModels.Id)
INNER JOIN AircraftManufacturers ON AircraftModels.ManufacturerId = AircraftManufacturers.Id)
INNER JOIN Locations ON Aircraft.LocationId = Locations.Id
JOIN iter$simple_intlist_to_tbles(@ids) i ON AircraftModels.id = i.number
WHERE (Aircraft.IsActive=1 AND Advertisers.IsActive=1 AND Aircraft.IsSold=0 AND (Aircraft.EndDate>=@Date OR Aircraft.EndDate Is Null) AND Locations.Id = @Location)
OR (Aircraft.IsActive=1 AND Advertisers.IsActive=1 AND Aircraft.IsSold=1 AND Aircraft.SoldDate>=@Date2 AND Locations.Id = @Location)
ORDER BY Advertisers.IsPremiumAdvertiser ASC, Aircraft.DateAdded DESC, Aircraft.ListPosition DESC,
Aircraft.LastUpdateDate, AircraftManufacturers.Name, AircraftModels.ModelName, Aircraft.ModelSuffix,
Aircraft.Id DESC
END
iter $ simple_intlist_to_tbles (@ids) simple builds aтаблица из ввода @ids.Эти входные данные представлены в виде строк с номерами идентификаторов, разделенных символом ',', например, 1, 2, 3, 4 и т. Д.
Теперь мне нужно заменить @Location настрока идентификаторов местоположений, отформатированных таким же образом, например, 1, 2, 3, 4 и т. д.
Так что моя проблема заключается в следующем ... Как мне адаптировать вышеуказанный sql /хранимой процедуры, так что два предложения «WHERE», которые фильтруют на основе одного местоположения, теперь могут принимать несколько идентификаторов местоположения. ??????
Любая помощь будет по достоинству оценена.* Спасибо.