PDA

View Full Version : معادل صحیح این دستور اشتباه



mehr83
چهارشنبه 30 اردیبهشت 1388, 03:00 صبح
منظورم اینه

SELECT id, per
FROM dbo.ads
WHERE (per = 100)
select top(3) id,per
from ads
where( per =20)

کد صحیحش را چطوری باید بنویسم؟
با تشکر

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

amin_alexi
چهارشنبه 30 اردیبهشت 1388, 08:47 صبح
اول بگو واسه چه کاری این کد رو نوشتی !
بعد چه Error ی میده ! یا چه خروجی اشتباهی میده تا اگه بشه اصلاحش کنیم !

Sweety
چهارشنبه 30 اردیبهشت 1388, 09:46 صبح
اگه مي خواين اين دوتا را با هم ببينيد. بايد اينجوري بنويسيد.البته مطمئن نيستم منظورتون رو درست متوجه شدم يا نه.

SELECT id, per
FROM dbo.ads
WHERE (per = 100)
Union All
select top 3 id,per
from ads
where( per =20)

mehr83
چهارشنبه 30 اردیبهشت 1388, 15:21 عصر
اگه مي خواين اين دوتا را با هم ببينيد. بايد اينجوري بنويسيد.البته مطمئن نيستم منظورتون رو درست متوجه شدم يا نه.

SELECT id, per
FROM dbo.ads
WHERE (per = 100)
Union All
select top 3 id,per
from ads
where( per =20)

ممنون از پاسختون
اما وقتی تعداد select 3 تا میشه


SELECT id, per
FROM dbo.ads
WHERE (per = 100)
UNION ALL
SELECT TOP (1) id, per
FROM dbo.ads AS ads_1
WHERE (per = 20)
select top(3) id, per
from ads
where (per=50)

این خطا رو میده

Unable to parse query text.
مشکل دوم
چر1 به Order by new id خطا میده


SELECT id, per
FROM dbo.ads
WHERE (per = 100)
ORDER BY newid()
UNION ALL
SELECT TOP (1) id, per
FROM dbo.ads AS ads_1
WHERE (per = 20) Using
ORDER BY NEWID()


----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

amin_alexi
چهارشنبه 30 اردیبهشت 1388, 15:40 عصر
بین Select ها از Union All استفاده کن !
دیدیکه واسه اولی چه اتفاقی افتاد دومی هم همین کار رو بکن !

mehr83
چهارشنبه 30 اردیبهشت 1388, 16:21 عصر
معذرت می خوام
موند فقط یه مشکل
اما ORDER BY newid() را خطا میگیره
Unable to parse query text.


----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

Sweety
شنبه 02 خرداد 1388, 17:06 عصر
وقتي از union all استفاده مي كنيد بايد بين هر دو تا Query پشت سر هم يك Union All بذاريد.در ضمن بايدnewid() را توي select بياريد مثل كد زير
SELECT id, per,Newid()
FROM dbo.ads
WHERE (per = 100)
UNION ALL
SELECT TOP (1) id, per,Newid()
FROM dbo.ads AS ads_1
WHERE (per = 20)
Union All
select top(3) id, per,Newid()
from ads
where (per=50)

Sweety
شنبه 02 خرداد 1388, 17:07 عصر
يادم رفت بگم فقط يك Order By آخر query كافيه