PDA

View Full Version : برگرداندن چندمقدار در یک ستون؟؟؟



marjan_gh
یک شنبه 01 تیر 1393, 16:37 عصر
تو حالت عادی این کوئری ارور نداره! ولی در زمان اجرا به قسمت تگها که می رسه چون هر پست ممکنه بیش از یک تگ داشته باشه با ارور مواجه می شم اروری که مشخصا می گه چند مقدار رو نباید در یک ستوون برگردوند حالا من چی کار کنم؟؟؟؟:ناراحت:


ALTER PROCEDURE [dbo].[sp_Manage_Show_Specific_Post]
@postId int
AS
BEGIN

SET NOCOUNT ON;
SELECT postId,postDate,postTitel,postSummary,postMainCont ent,
(select tblTags.tagName from tblPostTag inner join tblTags
on tblTags.tagId=tblPostTag.tagId where postId=@postId )as tagname,
(select tblTags.tagId from tblPostTag inner join tblTags
on tblTags.tagId=tblPostTag.tagId where postId=@postId ) as tagid,
(select imageUrl from tblImage inner join tblItemImage
on tblImage.imageId=tblItemImage.imageId where
tblItemImage.mainCategoryId=2 and imageDefault='true' and itemId=@postId),
(select itemImageId from tblImage inner join tblItemImage
on tblImage.imageId=tblItemImage.imageId where
tblItemImage.mainCategoryId=2 and imageDefault='true' and itemId=@postId)
from tblPost where postId=@postId
END

یوسف زالی
دوشنبه 02 تیر 1393, 22:05 عصر
سلام.
ارورتون <=> هست؟

marjan_gh
سه شنبه 03 تیر 1393, 10:09 صبح
این ارورم هست


Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression

یوسف زالی
سه شنبه 03 تیر 1393, 12:20 عصر
دلیلش استفاده از سلکتیه که جدول بر می گردونه اما تو جای فیلد استفاده شده.
برای این کار باید اون دو تا رو یا با هم join کنید یا این که تکلیف فیلدی که میاد رو مشخص کنید تا فقط یکی بیاد. مثلا max یا top بگیرید. بستگی داره به کارتون.

marjan_gh
چهارشنبه 04 تیر 1393, 10:56 صبح
من برا اینکه کارم راه بیفته اومدم سلکت تگها رو جدا کردم ولی کلا برای هر پست لیستی از تگها وجود داره و من فک می کردم میشه این لیست رو تو یه ستون برگردوند که انگار نمی شه!

یوسف زالی
چهارشنبه 04 تیر 1393, 11:03 صبح
شدنش رو می شه اما بصورت متنی

marjan_gh
چهارشنبه 04 تیر 1393, 14:48 عصر
بعدش می شه جداشون کرد مثلا با یه علامتی ؟
اگه ممکنه کدش رو بنویسین یا توضیحات کامل بزارین یا راهنمایی کنین من برم جستجو کنم:چشمک:

یوسف زالی
چهارشنبه 04 تیر 1393, 15:07 عصر
نمونش زیاده، بطور مثال:




with M as (
select *
from (values (1, 'Tehran'), (2, 'Karaj')) X(sn, data)
)
, D as (
select *
from (values (1, 10), (1, 20), (1, 40), (2, 10), (2, 50)) X(rel, num)
)


select *,
(select num from D where rel = sn for xml path(''))
from M