ورود

View Full Version : ایجاد کوئری



hamid10
چهارشنبه 27 اسفند 1393, 12:02 عصر
129558
با سلام خدمت اساتید
من میخواهم یک store procedure تعریف کنم که وقتی هر forumid انتخاب شد نام subForumID هایش رو نمایش بده.

محمد قانعی
چهارشنبه 27 اسفند 1393, 17:04 عصر
من دقیق منظورتون رو نفهمیدم.
ولی فکر کنم از این کد بتونی استفاده کنی.باید "نام فرضی" برای جدول هات درست کنی .


select g.code,c.name from tbl_1 g ,tbl_2 c where g.code=c.code

یه راه بهتر هم هست .در مورد "سلکت های تو در تو" هم توی همین سایت جستجو کن.

موفق باشی.

hamid10
چهارشنبه 27 اسفند 1393, 22:01 عصر
ببینید همان طور که در جدول ها نشان دادم هر فرومی چند تا ساب فروم دارد . حالا می خواهم هر forumId ای که انتخاب شد subforumname هایش از جدول subForum نمایش داده شود.(خروجی، همه فیلدهای جدول forum و subforumName از جدول subForum باشد) . چطور این کوئری رو بنویسم. خواهشا راهنمایی کنید

محمد قانعی
چهارشنبه 27 اسفند 1393, 22:37 عصر
سلام.
اول از هر چیزی باید forumId ای که انتخاب شده رو برای sql بفرستی
بعدش کد زیر رو توی sql بنویس



@forumId int
as
select *,(select subforumName from subForum where frmid= t.forumId) as subforumName from forum_1 t where forumId =@forumId

هم باید از "سلکت های تو در تو" استفاده بشه هم از "نام فرضی" برای جدول.
وقت داشتی برای بهتر فهمیدن این دستورها توی همین سایت یه جستجویی بکن.
موفق باشی عزیزم.:چشمک:

hamid10
پنج شنبه 28 اسفند 1393, 07:56 صبح
مشکل من هم دقیقا همین جا هست چون فقط رکورد اول از subforumName رو در هر سطر می توانم ببینم (با استفاده از top 1)
و این ارور را نشون می ده
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
"سلکت های تو در تو " رو هم تماما بررسی کرده ام ولی هنوز به جواب نرسیده ام.

محمد قانعی
پنج شنبه 28 اسفند 1393, 19:41 عصر
اگه تونستی دستور select رو برام بزار.
فکر کنم یه همچین چیزی باید باشه.


@forumId int
as

select *,(select top(1)subforumName from subForum where frmid= t.forumId) as subforumName from forum_1 t where forumId =@forumId

hamid10
پنج شنبه 28 اسفند 1393, 20:25 عصر
سلام.
بله دقیقا همین است ولی این فقط اولین subforumName از هر forumID رو نشون میده . برای دیدن کل subforumName از هر forumId باید چی نوشت؟

محمد قانعی
پنج شنبه 28 اسفند 1393, 21:40 عصر
سلام حمید جان.
این کد رو امتحان کن.اگه خطا داد بگو.



@forumId int
as
select t.subforumName,p.forumId,p.forumname,p.total_forum from subForum_1 t , forum_1 p where p.forumId=t.frmid and t.frmid=@forumId


من امتحانش کردم درست بود.
موفق باشی عزیزم.