hmahdavi921
یک شنبه 17 مرداد 1395, 20:18 عصر
با سلام
سه تا جدول دارم که میخوام با هم join بزنم . این کار رو در پراسیجر انجام میدم .
ALTER PROCEDURE [dbo].[ProcCharterReport](@StartDate DATETIME,
@endDate DATETIME,
@state INT,
@AgencyName NVARCHAR(50),
@top INT)
AS
BEGIN
SELECT TOP (@top) Charter.Id,
Charter.CustomerName,
CharterAgancy.Name,
Payments.Transactionsuccess,
Payments.TrackingCode,
Payments.Price,
Charter.TiketUrl,
Charter.ReserveDate,
Charter.Confirmed,
Charter.Cname
FROM dbo.Payments
INNER JOIN Charter ON Charter.Id = dbo.Payments.ObjectIdDepartue
LEFT OUTER JOIN CharterAgancy ON CharterAgancy.Id = Charter.AgencyCode
WHERE CAST(dbo.Charter.ReserveDate AS DATE) >= CAST(@StartDate AS DATE)
AND CAST(dbo.Charter.ReserveDate AS DATE) <= CAST(@endDate AS DATE)
AND (dbo.Payments.Transactionsuccess = @state
OR @state = 2)
AND (dbo.Charter.AgencyName = @AgencyName
OR @AgencyName = 'All')
ORDER BY dbo.Charter.ReserveDate DESC;
END;
الان موقع گرفتن کوئری نتایج تکراری میاد.
جدول Charter با جدول Payments ارتباط داره و تو این قسمت مشکلی نیست. اما جدول Charter با جدول CharterAgancy ارتباط نداره و البته فیلدی که در شرط join استفاده شده در جدول Charter مقدار نداره null هست .
دوستان چه پیشنهادی برای حل این مسئله دارین؟
با تشکر
سه تا جدول دارم که میخوام با هم join بزنم . این کار رو در پراسیجر انجام میدم .
ALTER PROCEDURE [dbo].[ProcCharterReport](@StartDate DATETIME,
@endDate DATETIME,
@state INT,
@AgencyName NVARCHAR(50),
@top INT)
AS
BEGIN
SELECT TOP (@top) Charter.Id,
Charter.CustomerName,
CharterAgancy.Name,
Payments.Transactionsuccess,
Payments.TrackingCode,
Payments.Price,
Charter.TiketUrl,
Charter.ReserveDate,
Charter.Confirmed,
Charter.Cname
FROM dbo.Payments
INNER JOIN Charter ON Charter.Id = dbo.Payments.ObjectIdDepartue
LEFT OUTER JOIN CharterAgancy ON CharterAgancy.Id = Charter.AgencyCode
WHERE CAST(dbo.Charter.ReserveDate AS DATE) >= CAST(@StartDate AS DATE)
AND CAST(dbo.Charter.ReserveDate AS DATE) <= CAST(@endDate AS DATE)
AND (dbo.Payments.Transactionsuccess = @state
OR @state = 2)
AND (dbo.Charter.AgencyName = @AgencyName
OR @AgencyName = 'All')
ORDER BY dbo.Charter.ReserveDate DESC;
END;
الان موقع گرفتن کوئری نتایج تکراری میاد.
جدول Charter با جدول Payments ارتباط داره و تو این قسمت مشکلی نیست. اما جدول Charter با جدول CharterAgancy ارتباط نداره و البته فیلدی که در شرط join استفاده شده در جدول Charter مقدار نداره null هست .
دوستان چه پیشنهادی برای حل این مسئله دارین؟
با تشکر