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

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

صورة
- - - - -

عندى مشكلة فى الsql


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

#1 medo4m

medo4m

    عضو

  • الأعضــاء
  • 4 مشاركة

تاريخ المشاركة 10 June 2007 - 01:18 AM

عايز اعمل استعراض لاسامى الموظفين ومرتباتهم بحيث المرتبات كل الف جنية بنجمة
يعنى لو واحد مرتبه 5000 جنية تظهر***** ولو واحد مرتبة 2000 جنية تظهر ** وهكذا
ازاىىىىى ؟؟؟ ارجو الرد سريعا

#2 gh-ora

gh-ora

    عضو

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

تاريخ المشاركة 10 June 2007 - 09:10 AM

الحل باستعمال التعليمة decode التي تأخذ البارامتر الأول الحقل أو التعبير المراد مقارنته ثم أزوراج من البارامترات الأول للقيمة التي سنقارن معها والثاني للنتيجة التي ستظهر وفي النهاية بارامتر أخير ليكون هو النتيجة في حال عدم تحقق أي من المقارنات السابقة .
وبالتالي يصبح الحل كالتالي:
select ename,decode(trunc(sal/1000),1,'*',2,'**',3,'***',4,'****',5,'*****',6,'******','...')from emp
وبالتالي الرواتب بين 1000 و2000 ستعطي نجمة وبالمثل حتى 6000 أما الباقي فسيعطي (...) ثلاث نقاط

#3 الحمادي

الحمادي

    مشترك

  • الأعضــاء
  • 50 مشاركة

تاريخ المشاركة 11 June 2007 - 06:31 PM

بسم الله الرحمن الرحيم



عفوا صديقي اعطي حل يناسب اي رقم


SELECT  SAL, TRIM(0 FROM RPAD((SAL-SAL),(SAL/1000)+1,'*')) FROM EMP


#4 الحمادي

الحمادي

    مشترك

  • الأعضــاء
  • 50 مشاركة

تاريخ المشاركة 11 June 2007 - 07:08 PM

عفوا حل ابسط

SELECT SAL, RPAD('*',trunc(SAL/1000),'*') FROM EMP