J'ai hérité d'un db etc d'un autre développeur et j'ai besoin d'aide.SQL SP avec plusieurs valeurs pour une entrée
J'ai la procédure stockée suivante:
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>[email protected] OR Aircraft.EndDate Is Null) AND Locations.Id = @Location)
OR (Aircraft.IsActive=1 AND Advertisers.IsActive=1 AND Aircraft.IsSold=1 AND Aircraft.SoldDate>[email protected] 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, crée une table de l'entrée de @ids. Cette entrée se présente sous la forme d'une chaîne de chiffres séparés par un ',' par exemple, 1, 2, 3, 4, etc ...
Maintenant, je dois remplacer le @Location par une chaîne des ID d'emplacement formatés de la même manière, par exemple, 1, 2, 3, 4, etc ...
Donc mon problème est ceci ... Comment puis-je adapter la procédure sql/stockée ci-dessus afin que les deux clauses 'WHERE' qui filtrent en fonction d'un seul emplacement, peuvent maintenant prendre plusieurs ID de lieu ??????
Toute aide serait vraiment appréciée.
Merci.
Merci pour cela !!!! Vraiment apprécié. –