بتاريخ: 26 مايو 200916 سنة comment_158177 السلام عليكم ورحمة الله وبركاتهالملف المرفق به توضيح الإستعلام المعقد المطلوبجزاكم الله خيرا My_query.doc My_query.doc My_query.doc تقديم بلاغ
بتاريخ: 28 مايو 200916 سنة comment_158462 السلام عليكماذا كانت هذه النتيجة فى اخر الامر ستعرض على فورمة فيفضل استخدام PL/SQL وسيكون الحل اكثر تحكما منه عن SQLوشكراميجا تم تعديل 28 مايو 200916 سنة بواسطة khaledmega تقديم بلاغ
بتاريخ: 28 مايو 200916 سنة comment_158465 راجع الرابط http://www.araboug.org/ib/index.php?showtopic=8745 تقديم بلاغ
بتاريخ: 2 يونيو 200916 سنة comment_159013 مرحباانا عملت جدول في البيانات اللي انت كاتبها بالأول وبعد هيك عملت الإستعلام؛ وكانت النتيجة زي مابدك انت بالزبط: ---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 مع امكانية تغيير اسماء الحقول... تم تعديل 2 يونيو 200916 سنة بواسطة ORA-2008 تقديم بلاغ
بتاريخ: 8 أكتوبر 200916 سنة comment_172217 هذا حل مباشر 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 تقديم بلاغ
بتاريخ: 8 أكتوبر 200916 سنة comment_172218 هذا الحل افضل 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 / تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.