PDA

View Full Version : انتخاب یکسری از رکوردها با شرط خاص



Batman
جمعه 29 تیر 1386, 18:17 عصر
با سلام
select distinct(factor) from sell where factor<>(select factor from status)
دستور بالا برای انتخاب یکسری از رکوردها هستش که شماره فاکتور توی جدول sell باشه اما تو جدول status نباشه
اجرا کردم خطا داد
at most one record can be returned by this subquery
ممنونم

niksoft
جمعه 29 تیر 1386, 20:21 عصر
Query که شما نوشته اید در قسمت
(select factor from status)
بیش از یک رکورد برمیگرداند به همین دلیل خطا میدهد

بهتر است از Query زیر استفاده کنید


Select Factor
From Sell
Where Not Exists(Select Factor
From Status
Where Status.Factor = Sell.Factor)

SYNDROME
جمعه 29 تیر 1386, 21:07 عصر
با سلام

با سلام
select distinct(factor) from sell where factor<>(select factor from status)
دستور بالا برای انتخاب یکسری از رکوردها هستش که شماره فاکتور توی جدول sell باشه اما تو جدول status نباشه
اجرا کردم خطا داد
at most one record can be returned by this subquery
ممنونم
دستور را اینجوری بنویس.


select distinct(factor) from sell where factor not In (select factor from status)

موفق باشی

Batman
شنبه 30 تیر 1386, 08:14 صبح
آقای syndrome دست گلت درد نکنه حل شد
و همچنین با تشکر از آقای niksoft عزیز

Batman
شنبه 30 تیر 1386, 10:15 صبح
با سلام
select distinct(factor) from sell where factor<>(select factor from status)
دستور بالا برای انتخاب یکسری از رکوردها هستش که شماره فاکتور توی جدول sell باشه اما تو جدول status نباشه
اجرا کردم خطا داد
at most one record can be returned by this subquery
ممنونم
در ادامه سوال قبلی اگه شماره فاکتور بخواد از دو تا بانک خونده بشه چجوریه؟
یعنی شماره فاکتورهایی که در جدول sell و fix باشه اما در جدول status نباشه
ممنونم

Batman
شنبه 30 تیر 1386, 19:01 عصر
دوستان کسی نظری نداره

reza_rad
شنبه 30 تیر 1386, 19:16 عصر
select distinct(factor) from sell
where
factor not In (select factor from status)
and factor in (select factor from fix)

Batman
شنبه 30 تیر 1386, 20:43 عصر
آقای راد دستتون درد نکنه
mer30

Batman
شنبه 30 تیر 1386, 21:56 عصر
select distinct(factor) from sell
where
factor not In (select factor from status)
and factor in (select factor from fix)


جناب راد تستش کردم خطا نمیده اما جواب هم نمیده
خودم به صورت دستی چک کردم توی جدول sell درست کار میکنه البته اگه بعد از and رو ننویسی اما برای fix حدود 3 تا رکورد هستش که نشون نمیده
جدول status جدول افرادی هستش که وضعیت بدهی هاشون رو نشون میده
لطفا راهنماییم کنید
ممنونم

SYNDROME
شنبه 30 تیر 1386, 22:27 عصر
با سلام
اینجوری امتحان کن.


select sell.factor from sell
Inner Join Fix
On Sell.Factor = Fix.Factor
where
Sell.factor not In (select factor from status)

موفق باشی

Batman
یک شنبه 31 تیر 1386, 07:29 صبح
آقای syndrome ممنونم
تستش میکنم

Batman
یک شنبه 31 تیر 1386, 07:40 صبح
آقای syndrome بازم خطا نمیده اما جواب هم نمیده
ببینید جدول sell جدول فروش کلی و جدول fix جدول تعمیرات و جدول status جدول وضعیت مالی افراد هستش
مثال : ممکنه یه نفر تو جدول fix تعمیرات داشته باشه اما هیچ مبلغی توی جدول status براش ثبت نشده باشه حالا این فرد جزو بدهکاران هستش و ممکنه حالا تو جدول sell هم چنین موردی داشته باشیم
و من میخوام شماره فاکتورهایی رو داشته باشم که توی دو تا جدول sell و fix باشند اما هیچگونه مبلغی هم پرداخت نکردن (توی status نباشند)
آقای syndrome با کد شما جدول فیلتر میشه اما بدون هیچ مقداری
امیدوارم تونسته باشم منظورم رو بفهمونم
mer30

علامت سوال
یک شنبه 31 تیر 1386, 09:03 صبح
مشکل از اطلاعات توی جداول میتونه باشه که factor توی جدول های مختلف یکسان نیست
اگه این فیلد از نوع char باشه و شما توی یکی از رکرود ها بجای نوشتن '1' مقدار ' 1' یعنی با فاصله نوشته شده باشه عمل نمیکنه فقط یه مثال بود

Batman
یک شنبه 31 تیر 1386, 13:24 عصر
نه شماره فاکتور بصورت random تولید میشه و تکراری هم نیستش چون فیلد کلیدی هستش

reza_rad
یک شنبه 31 تیر 1386, 13:34 عصر
من میخوام شماره فاکتورهایی رو داشته باشم که توی دو تا جدول sell و fix باشند اما هیچگونه مبلغی هم پرداخت نکردن (توی status نباشند)

فکر کنم منظورتون اینه که توی جدول sell یا fix باشند(یعنی اجتماع این دو و نه اشتراک اونها) ولی توی status نباشند. درسته؟
اگه همینطوره کد شما چنین چیزی میشه:


select distinct factor from sell where factor not in (select factor from status)
UNION
select distinct factor from fix where factor not in (select factor from status)

Batman
دوشنبه 01 مرداد 1386, 07:15 صبح
دقیقا همینه تستش مینکم آقای راد

Batman
دوشنبه 01 مرداد 1386, 07:34 صبح
اقای راد دستتون درد نکنه حل شد
اما یه سوال چجوری میشه بقیه مشخصات همون شماره فاکتورها رو هم توی grid نشون داد
همه از جدول status هستش؟
ممنونم

Batman
دوشنبه 01 مرداد 1386, 13:35 عصر
دوستان منتظر جواب شما هستم