PDA

View Full Version : تکرار شدن سطر



forodo
دوشنبه 08 دی 1393, 09:11 صبح
سلام
با استفاده از 3 جدول زیر کوئری می زنم که خروجی اش سطر تکراری میاورد.
http://8pic.ir/images/8vn3h65npi9bhly9ouog.png








http://8pic.ir/images/35u5njae9hnx9mcf3hw4.png





http://8pic.ir/images/y2sxyq6sktqg6je6uggw.png


این هم خروجی کوئری با خود کوئری:
http://8pic.ir/images/orpgjsqqlplkj3yv7c5c.png
کوئری عکس بالا:
with tblWith1 as
(
SELECT MAX(tblDaryafti.ID) AS DID, tblLetterVarede.ID AS dd
FROM tblLetterVarede INNER JOIN tblDaryafti
ON tblLetterVarede.ID = tblDaryafti.VaredeLetterID
WHERE tblDaryafti.SendErjaa IS NOT NULL AND tblDaryafti.VaredeLetterID IN (SELECT LetterNumber
FROM tblVaziateMokatebat
WHERE Username = N'3')
GROUP BY tblLetterVarede.ID
)
SELECT tblDaryafti.ID AS DID,tblLetterVarede.ID,tblLetterVarede.LetterID
,Subject,tabaghe,jahat,ErjaDate,ErjaTime,
InOut = N'وارده', (CASE tblDaryafti.Archived WHEN 0 THEN N'جریان' ELSE N'اختتام' END) AS Ekhtetam, ProjectName
, tblVaziateMokatebat.Ersal, tblVaziateMokatebat.Erjaa, tblVaziateMokatebat.Ekhtetam AS Ekhtetam1,'' AS Level
FROM tblLetterVarede INNER JOIN tblDaryafti
ON tblLetterVarede.ID = tblDaryafti.VaredeLetterID INNER JOIN tblWith1
ON tblDaryafti.ID = tblWith1.DID INNER JOIN tblVaziateMokatebat ON tblVaziateMokatebat.LetterNumber = tblLetterVarede.ID

tiphooo
چهارشنبه 10 دی 1393, 16:52 عصر
خروجی مورد نظر شما تکراری نیست
تکراری زمانی است که همه فیلدها در یک رکورد با تمام فیلدها در رکورد دیگر یکسان باشد که در اینجا اینگونه نیست . در خروجی مورد نظر tblVaziateMokatebat.Erjaa و Ekhtetam1 تکراری نیست
شما ظاهرا در جدول tblVaziateMokatebat چندین شماره نامه تکراری دارید
در ضمن این مدل JOIN زدن شما به هیچ وجه قابل Trace کردن نیست

forodo
چهارشنبه 10 دی 1393, 22:06 عصر
اطلاعات جداولی ( سطر tblLetterVarede = 1 و سطر tblDaryafti = 3 و سطر tblVaziateMokatebat = 2 ) که گذاشتم همه اطلاعات است. هیچ سطر اضافه ای نداره.
Trace یعنی چی؟

tiphooo
یک شنبه 14 دی 1393, 00:13 صبح
Trace یعنی اینکه با کلید F10 خط به خط خروجی اسکریپت رو بگیرید و متوجه بشید کجای کار اشتباهه و یا بخشی از اسکریپت رو انتخاب کرده و خروجی همون قسمت رو بررسی کنید
با مدل JOIN هایی که شما زدید این کار امکانپذیر نیست و برای بررسی خطا همیشه از خط اول تا اخر را باید بررسی کنید

forodo
یک شنبه 14 دی 1393, 07:40 صبح
اگه براتون امکان داره می گید که چطور باید Join زد.
با تشکر