ورود

View Full Version : آپدیت کردن خروجی یک کوئری که بیش از یک خروجی دارد



TheBest
دوشنبه 15 مهر 1392, 10:53 صبح
با سلام خدمت همه دوستان
یه کوئری نوشتم به شکل زیر:
string Query = "select TT.Serial as Serial, TT.Status as Status from TTicket TT inner join TSell TS on TS.TicketID = TT.ID inner join TSean TSE on TS.SeanID = TSE.ID where TT.Status = 0 and TS.TicketDate = '{0}' and TSE.ID < {1}"
Query = string.Format(Query, this.TicketDate, this.SeanID)
خروجی این کوئری بیش از یه سطره. حالا من می‌خوام این خروجی ها رو آپدیت کنم، مثلا Status اونهارو ۱ کنم. اولش فکر کردم که یه view بسازم که این خروجی هارو ذخیره کنه و بعد اون view رو آپدیت کنم ولی مشکلش اینه که مدیریتش سخت میشه و به صورت مداوم باید اونهارو ایجاد و پاک کنم.
لطفا روش بهینه و استانداردی برای این مشکل مطرح کنید. با تشکر...

Salah Sanjabian
سه شنبه 16 مهر 1392, 18:31 عصر
سلام دوست عزیز نمیشه نتیجه یه کوئری رو آپدیت کرد . منظور شما اینه که جدول اصلی رو براساس نتیجه یه کوئری آپدیت کرد درسته؟

Reza_Yarahmadi
چهارشنبه 17 مهر 1392, 07:24 صبح
بصورت زیر امتحان کنید
UPDATE TTicket SET Status = 1
FROM
TTicket TT INNER JOIN TSell TS
ON
TS.TicketID = TT.ID
INNER JOIN TSean TSE
ON
TS.SeanID = TSE.ID
WHERE
TT.Status = 0
AND
TS.TicketDate = '{0}'
AND
TSE.ID < {1}

TheBest
پنج شنبه 18 مهر 1392, 08:20 صبح
بصورت زیر امتحان کنید
UPDATE TTicket SET Status = 1
FROM
TTicket TT INNER JOIN TSell TS
ON
TS.TicketID = TT.ID
INNER JOIN TSean TSE
ON
TS.SeanID = TSE.ID
WHERE
TT.Status = 0
AND
TS.TicketDate = '{0}'
AND
TSE.ID < {1}

بسیار عالی، ممنون از شما. فکر نمی‌کردم بشه خروجی دستور select‌ رو بدون نوشتن خود select بدست آورد...