PDA

View Full Version : کمک در انجام یک select



etbani
پنج شنبه 04 اسفند 1390, 21:51 عصر
با این دستور:



1.select t from s
2.where t<='5'



3تا رکورد میاره
1)2
2)4
3)3
خوب،
حالا میخوام بگم اونایی رو بیار که خاصل جمعشون برابر 5 میشه
که باید رکوردهای 1و2 رو بیاره.
میشه ؟چه جوری؟
خواهش میکنم کمکم کنید باید تحویل بدم تا شنبه:افسرده::گریه:

tiphooo
جمعه 05 اسفند 1390, 16:16 عصر
شاید این کارتون رو راه بندازه
SELECT P.*,Q.* FROM (SELECT t FROM s WHERE t<=5)P INNER JOIN (SELECT t FROM S WHERE t<=5)Q ON P.t+Q.t=5

etbani
جمعه 05 اسفند 1390, 16:37 عصر
نه جواب نمیده

Arash_janusV3
جمعه 05 اسفند 1390, 16:45 عصر
درود

Select adad (Select Sum(adad) from asli Where id <= ss.id) As Mande
From asli ss


این دستور خیلی ساده هست
و باید همون table رو دوجا بگذاری
و در آخر mande را مساوی 5 قرار بده
بدرود

etbani
جمعه 05 اسفند 1390, 17:42 عصر
سلام.
ممنون میشه طبق فیلدی که من گذاشتم (t) بگین یا بیشتر توضیح بدین

Arash_janusV3
جمعه 05 اسفند 1390, 17:46 عصر
t می شه adad
asli می شه table شما

etbani
جمعه 05 اسفند 1390, 17:53 عصر
مرسی یعنی :
Select t (Select Sum(t) from salon Where id <= ss.id) As 5
From salon ss
ولی این خطا رو میده
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'Select'.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near ')'.

Arash_janusV3
جمعه 05 اسفند 1390, 18:19 عصر
id تیبل داری؟

as 5 رو تبدیل کن به as mande
error نداد بگو تا بریم سراغ مرحله بعدی

etbani
جمعه 05 اسفند 1390, 18:29 عصر
ببینین دستور اول اینهselect id,tgroup from salon
where tgroup<='5'
خروجی:
id tgoup
2 1
4 2
3 3
حالا این دستور:Select tgroup (Select Sum(tgroup) from salon Where id <= ss.id) As mande
From salon ss

بازم خطا میده

Arash_janusV3
جمعه 05 اسفند 1390, 18:34 عصر
type فیلد tgroup رو چی گذاشتی؟

etbani
جمعه 05 اسفند 1390, 18:35 عصر
nvarchar(50)

Arash_janusV3
جمعه 05 اسفند 1390, 18:40 عصر
به نظر تو وقتی typpe رشته باشه چی رو باید جمع بزنه ؟
بگذاز int or bigint
اگر داده داخل تیبل باشه احتمالا error می ده
جدولتو اول خالی کن بعد type رو تغییر بده
در مورد type هم یه مقدار اطلاعات جمع آوری کن تا بهتر تصمیم گیری کنی

etbani
جمعه 05 اسفند 1390, 18:47 عصر
مرسی همه ی این کارارو کردم ولی بازم خطا میده
این شرط where id<=ss.id واسه چیه؟

Arash_janusV3
جمعه 05 اسفند 1390, 18:50 عصر
قبلی ها رو ست کنه
id از جنس چیه؟

etbani
جمعه 05 اسفند 1390, 18:53 عصر
نوع id:int
هستidentity

Arash_janusV3
جمعه 05 اسفند 1390, 18:56 عصر
error را بگذار

etbani
جمعه 05 اسفند 1390, 19:00 عصر
این error سلکت داخلی:
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "ss.id" could not be bound.
و کل دستور:
Msg 156, Level 15, State 1, Line 8
Incorrect syntax near the keyword 'Select'.
Msg 102, Level 15, State 1, Line 8
Incorrect syntax near ')'.

etbani
جمعه 05 اسفند 1390, 19:41 عصر
ممنون از دوست خوبم
ولی با ای دستور
Select Tgroup,(Select Sum(Tgroup) from salon Where id <= ss.id ) As Mande
From salon ss where tgroup<='5'
اونی رکوردی که 4 هست رو هم میاره من میخوام فقط رکوردایی که جمعشون 5 میشه رو بیاره
کسی میتونه کمکم کنه؟

nedata
جمعه 05 اسفند 1390, 22:55 عصر
اين دستور به طوري است كه فيلد id نداشته باشيدو فقط فيلد t وجود دارد

Select distinct t
from
(select t1.t,(t1.t+t2.t) as a
from table1 t1 cross join table1 t2)g
where a=5

etbani
جمعه 05 اسفند 1390, 23:20 عصر
ممنون ولی میشه بیشتر توضیح بدین من فقط یه جدول دارم

nedata
جمعه 05 اسفند 1390, 23:27 عصر
در اين دستور هم يك جدول هست اما join جدول با خود جدول هست. cross join حالت ضرب داره

etbani
جمعه 05 اسفند 1390, 23:41 عصر
مرسی گلم درست شد یه دنیا ممنون:تشویق::تشویق::تشویق:
همیشه شاد باشی
ولی من id رو هم میخوام این چه جوری میشه

nedata
جمعه 05 اسفند 1390, 23:48 عصر
خواهش مي كنم. ميشه بگي جدولت چه فيلدهايي داره ؟

etbani
جمعه 05 اسفند 1390, 23:50 عصر
id,tgroup as t,salon

nedata
شنبه 06 اسفند 1390, 00:10 صبح
Select distinct tgroup,id,salon
from
(select t1.salon,t1.id,t1.tgroup,(t1.tgroup+t2.tgroup) as a
from table1 t1 cross join table1 t2)g
where a=5

etbani
شنبه 06 اسفند 1390, 00:14 صبح
مرسی گلم کارت عالیه:تشویق:
یه سوال چرا وقتی من جای 5 ،6 میزارم
tgroup رو 2و4و3 میاره
بازم خیلی ممنوننم

nedata
شنبه 06 اسفند 1390, 00:26 صبح
چون در اين دستور خود 3 هم با 3 جمع ميشه

etbani
شنبه 06 اسفند 1390, 00:30 صبح
شرمنده یه سوال دیگه:
چرا 2 ویا 3 رو که میزنم هیچ رکوردی نمیاره ئر صورتی که من یه رکورد که tgroup اون 2 ویک رکورد که tgroup اون 3 باشه تو جدولم دارم

nedata
شنبه 06 اسفند 1390, 00:42 صبح
خوب شما سوالتون اين بود كه حاصلجمع برابر با يك عدد باشه نه اينكه خود عدد با مثلا عدد 2 برابر باشه

etbani
شنبه 06 اسفند 1390, 00:47 صبح
حالا اگه بخوایم با خود عددم برابر باشه و شرط قبل هم برقرار باشه چه جوری میشه؟
قول میدم اینقده sql یاد بگیرlم تا مثل دوست خوبم nedata مشکل دوستانو رفع کنم:لبخندساده:

nedata
شنبه 06 اسفند 1390, 01:05 صبح
Select distinct tgroup,id,salon
from
(select t1.salon,t1.id,t1.tgroup,(t1.tgroup+t2.tgroup) as a
from table1 t1 cross join table1 t2)g
where a=2 or tgroup=2

etbani
شنبه 06 اسفند 1390, 01:08 صبح
مرسی خیلی ممنون انشاالله یه روزی منم مثل شما بشم
:قلب::تشویق::تشویق:

nedata
شنبه 06 اسفند 1390, 01:10 صبح
خواهش مي كنم انشاالله شما حرفه اي بشيد