إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

استعلام للخبراء ....!


6 رد (ردود) على هذا الموضوع

#1 Abokamal_Elsafty

Abokamal_Elsafty

    مشترك

  • الأعضــاء
  • 55 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 May 2009 - 11:57 AM

السلام عليكم ورحمة الله وبركاته

الملف المرفق به توضيح الإستعلام المعقد المطلوب

جزاكم الله خيرا

ملفات مرفقة

  • ملف مرفق  My_query.doc   36.5كيلو   99 عدد مرات التحميل
  • ملف مرفق  My_query.doc   36.5كيلو   49 عدد مرات التحميل
  • ملف مرفق  My_query.doc   36.5كيلو   34 عدد مرات التحميل


Ahmed Kamal El-Safty
Oracle DBA
A.kamal_dba@yahoo.com

اللهم اغفر لي ولوالدي ولأجدادي وللمسلمين والمسلمات الأحياء منهم والأموات


#2 khaledmega

khaledmega

    عضو مميز

  • الأعضــاء
  • 838 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 May 2009 - 08:28 PM

السلام عليكم
اذا كانت هذه النتيجة فى اخر الامر ستعرض على فورمة فيفضل استخدام PL/SQL وسيكون الحل اكثر تحكما منه عن SQL
وشكرا
ميجا

تم التعديل بواسطة khaledmega, 28 May 2009 - 08:32 PM.


من أهـم مواضــيعي :



نفسك تسطب اوراكل 10g وبالصور وتربط بين الداتابيز والديفولبر ؟


للأستفسار عن أى شيء يخص الأوراكل أبس أو اوراكل ديفولبر راسلنى على

e
ng-mega@hotmail.com

 

Oracle Apps Techno-Functional Consultant


Oracle Developer & Instructor

 

Instructor At Next Academy

 

محاضر معتمد لدي نكست أكاديمي

OCA - OCP

م / خالد الشاذلي


#3 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 May 2009 - 10:42 PM

راجع الرابط

http://www.araboug.o...?showtopic=8745

#4 Abokamal_Elsafty

Abokamal_Elsafty

    مشترك

  • الأعضــاء
  • 55 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 01 June 2009 - 01:41 PM

جزاكم الله خيرا


Ahmed Kamal El-Safty
Oracle DBA
A.kamal_dba@yahoo.com

اللهم اغفر لي ولوالدي ولأجدادي وللمسلمين والمسلمات الأحياء منهم والأموات


#5 ORA-2008

ORA-2008

    مشترك

  • الأعضــاء
  • 192 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:FLY 4 EVER
    http://www.i3lani.co.cc

تاريخ المشاركة 02 June 2009 - 01:39 PM

مرحبا

انا عملت جدول في البيانات اللي انت كاتبها بالأول وبعد هيك عملت الإستعلام؛ وكانت النتيجة زي مابدك انت بالزبط:
---table
CREATE TABLE abc AS SELECT '24/5/2009' a,'x' b, -0.2 c FROM dual UNION
SELECT '24/5/2009' ,'y' ,0.5 FROM dual UNION
SELECT '24/5/2009' ,'z' ,0 FROM dual UNION
SELECT '24/5/2009' ,'f' ,0 FROM dual UNION
SELECT '24/5/2009' ,'g' ,-0.7 FROM dual UNION
SELECT '25/5/2009' ,'x' ,0 FROM dual UNION
SELECT '25/5/2009' ,'z' ,0.3 FROM dual UNION
SELECT '25/5/2009', 'y' ,-0.3 FROM dual UNION
SELECT '25/5/2009', 'g' ,0.5 FROM dual UNION
SELECT '25/5/2009', 'f' ,0.3 FROM dual UNION
SELECT '26/5/2009', 'y', 0.3 FROM dual UNION
SELECT '26/5/2009', 'z', 0 FROM dual UNION
SELECT '26/5/2009', 'x', 0 FROM dual

--query
SELECT a,count(n) nigative,count(z) no_change,count(p) positivenum, count(n)+count(z)+count(p) ALLn FROM (select a,b,c,
CASE
WHEN c <0 THEN 1 END n,
CASE
WHEN c =0 THEN 1 END z,
CASE
WHEN c >0 THEN 1 END p
from abc) GROUP BY a

مع امكانية تغيير اسماء الحقول...
ملف مرفق  pic.JPG   106.4كيلو   24 عدد مرات التحميل

تم التعديل بواسطة ORA-2008, 02 June 2009 - 01:43 PM.

صورة

#6 mahmoood

mahmoood

    عضو

  • الأعضــاء
  • 3 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 09 October 2009 - 02:22 AM

هذا حل مباشر


select dat,
nvl((select count(*) from status where change>0 and status .dat=aa.dat group by dat),0) positive
, nvl((select count(*) from status where change<0 and status .dat=aa.dat group by dat),0) negative
,nvl((select count(*) from status where change=0 and status .dat=aa.dat group by dat),0) zero
,nvl((select count(*) from status where status .dat=aa.dat group by dat),0) tot
from status aa group by dat

#7 mahmoood

mahmoood

    عضو

  • الأعضــاء
  • 3 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 09 October 2009 - 02:30 AM

هذا الحل افضل

select dat,nvl((select count(*) from status where change>0 and status .dat=aa.dat ),0) positive
, nvl((select count(*) from status where change<0 and status .dat=aa.dat ),0) negative
,nvl((select count(*) from status where change=0 and status .dat=aa.dat ),0) zero
,nvl((select count(*) from status where status .dat=aa.dat group by dat),0) tot
from status aa group by dat
/