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

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

صورة
- - - - -

هل يمكن عمل جملة Select التالية


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

#1 MuhammadYassein

MuhammadYassein

    عضو نشط

  • الأعضــاء
  • 304 مشاركة
  • الاسم الأول:Muhammad
  • اسم العائلة:Yassein
  • البـلـد: Country Flag
  • الاهتمامات:Oracle
    SOA
    BPM
    ADF
    Java
    Forms
    Reports
    Analysis
  • المنصب الحالي:Senior Oracle SOA BPM Specialist

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

الاخوة الاعزاء .... ممكن ان تشاركني التفكير و ان تحل معي هذة الجملة السهله المعقدة .... ستعرف كيف الان ...
اليك الجدول التالي ..
بيانات الخدمات المقدمة للعملاء و فترة تقديم هذه الخدمة

____________________________________________ _________
TDATE FDATE SERV_ID CUST_ID
____________________________________________ _________
31-12-2007 01-04-2007 99998 1001
____________________________________________ _________
30-05-2007 01-05-2007 99985 1002
____________________________________________ _________
15-06-2007 15-05-2007 94564 1003
____________________________________________ _________
01-05-2007 01-04-2007 68592 1005
____________________________________________ _________
15-06-2007 15-05-2007 56955 2015
____________________________________________ _________

كود العميل رقم الخدمة بداية الخدمة نهاية الخدمة

مفيش مشكلة ... المطلوب ......... محتاج الى جملة select تستخرج جميع العملاء المستحق لهم خدمات خلال فترة معينة
يعني لو عاوز جميع العملاء الذين لهم خدمات خلال شهر 5 حتى و لو مدة هذه الخدمة يوم واحد
لاحظ الجدول السابق ان جميع الخدمات في الجدول تستحق النتفيذ في شهر 5
الا ان هنالك خدمات مثلا تخص تبدأ من شهر 4 و تنتهي في نهاية السنة .. انا اريدها ان تظهر ايضا لان جزء منها يقع في شهر 5 مثل رقم الخدمة 999998

لو فية اي شيء مش واضح برجاء الرد


اللهم اني احبك ... و احب من يحبك ... و احب كل عمل يقربني الى حبك ... اللهم أني أسألك رضاك و عفوك وجنة الفردوس

 
 
public void myInfo{

String myName    = "محمد ياسين" ;
String myCountry = "مصر ام الدنيا" ;
String MyGod     = "لا اله الا الله"; 
String myProphet = "محمد رسول الله";
String MyBook    ="القرآن العظيم";
String myGoal    ="جنة الفردوس";
boolean stillLife = true;


while(stillLife){
        System.out.println("لا اله الا الله محمد رسول الله");
}

}

 

979213111.jpg

 

 

Contact me now ..

 

 - Facebook - Linkedin - Youtube  - Twitter


#2 timor

timor

    عضو نشط

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

تاريخ المشاركة 08 July 2007 - 03:44 PM

الاخ الكريم
الموضوع ساهل ان شاء الله
كل اللي هتعمله انك هتزود شرط
and my_date >=f_date
and my_date <=t_date
ده اصلا علي الجمله بتاعتك العادية
يارب يكون ده المطلوب
سلام

#3 Aziz_1

Aziz_1

    عضو

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

تاريخ المشاركة 09 July 2007 - 01:41 AM

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

نفس فكرة الأخ Timor
Select CUST_ID,SERV_ID,TDATE,FDATE where TDATE<= my_date and FDATE >=my_date

#4 Aziz_1

Aziz_1

    عضو

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

تاريخ المشاركة 09 July 2007 - 01:30 PM

السلام عليكم ورحمة الله
تصحيح
نفس فكرة الأخ Timor

Select CUST_ID,SERV_ID,TDATE,FDATE
From Table
Where TDATE<= my_date and FDATE >=my_date
;
اتمنى ان تكون المطلوب .......... مع تحياتي

#5 MuhammadYassein

MuhammadYassein

    عضو نشط

  • الأعضــاء
  • 304 مشاركة
  • الاسم الأول:Muhammad
  • اسم العائلة:Yassein
  • البـلـد: Country Flag
  • الاهتمامات:Oracle
    SOA
    BPM
    ADF
    Java
    Forms
    Reports
    Analysis
  • المنصب الحالي:Senior Oracle SOA BPM Specialist

تاريخ المشاركة 09 July 2007 - 06:17 PM

الاجابة ليست صحيحة ......

سوف اوضح اكثر ...

لو جربت الجملة التالية سوف تكون النتيجة التالية


30 -05 -2007	 01 -05 -2007	   99985		 1002

مع العلم ان جميع الفترات السابقة يوجد بها خدمات للعملاء .....
اي ان النتيجة السليمة هو اظهار الجدول السابق كاملاً .... لانه كما هو موضح فأن شهر 5 موجود في جميع الاسطر في الجدول
و بالتالي عند استعراض ما هي الحدمات المستحقة في شهر 5 لابد ان يذكر جميع الخدمات . حتى و لو كانت تستحق يوم واحد من شهر 5 كما هو في رقم الخدمة

رقم الخدمة 68592 الخاصة بالعميل 1005
حيث ان الخدمة تبدأ من 1-4-2007 و تنتهي في 1-5-2007
اي ما زال هناك يوم واحد للخدمة في شهر 5 لا بد ان يظهر في التقرير
ما باقي الخدمات التي تخص شهر 5

اللهم اني احبك ... و احب من يحبك ... و احب كل عمل يقربني الى حبك ... اللهم أني أسألك رضاك و عفوك وجنة الفردوس

 
 
public void myInfo{

String myName    = "محمد ياسين" ;
String myCountry = "مصر ام الدنيا" ;
String MyGod     = "لا اله الا الله"; 
String myProphet = "محمد رسول الله";
String MyBook    ="القرآن العظيم";
String myGoal    ="جنة الفردوس";
boolean stillLife = true;


while(stillLife){
        System.out.println("لا اله الا الله محمد رسول الله");
}

}

 

979213111.jpg

 

 

Contact me now ..

 

 - Facebook - Linkedin - Youtube  - Twitter


#6 Shibeika

Shibeika

    عضو نشط

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

تاريخ المشاركة 09 July 2007 - 08:28 PM

الأخ/محمد يسن
السلام عليكم ورحمة الله وبركاته
أعتقد أن هذا الكود يفي بالغرض إذا فهت قصدك
select * from customer_Service
where (fdate<=yourdate or tdate>=yourdate)

#7 MuhammadYassein

MuhammadYassein

    عضو نشط

  • الأعضــاء
  • 304 مشاركة
  • الاسم الأول:Muhammad
  • اسم العائلة:Yassein
  • البـلـد: Country Flag
  • الاهتمامات:Oracle
    SOA
    BPM
    ADF
    Java
    Forms
    Reports
    Analysis
  • المنصب الحالي:Senior Oracle SOA BPM Specialist

تاريخ المشاركة 10 July 2007 - 11:03 AM

للأسف .... الكود السابق . سوف تكون النتيجة خاطئة ... لماذا .... لو ان هناك السجل الاول ID 1001
FDATE = 1-04-2007
TDATE = 31-12-2007
رغم ان هناك خدمة تخص شهر 5 خلال الفترة ... الا انها لن تخرج في التقرير ...
لانك تطلب
FDATE <= 1-05-2007
OR
TDATE <=31-05-2007
للاسف النتيجة غير صحيحة ..

عفوا ...
للأسف .... الكود السابق . سوف تكون النتيجة خاطئة ... لماذا .... لو ان هناك السجل الاول ID 1001
FDATE = 1-04-2007
TDATE = 31-12-2007
رغم ان هناك خدمة تخص شهر 5 خلال الفترة ... الا انها لن تخرج في التقرير ...
لانك تطلب
FDATE >= 1-05-2007
OR
TDATE <=31-05-2007
للاسف النتيجة غير صحيحة ..

اللهم اني احبك ... و احب من يحبك ... و احب كل عمل يقربني الى حبك ... اللهم أني أسألك رضاك و عفوك وجنة الفردوس

 
 
public void myInfo{

String myName    = "محمد ياسين" ;
String myCountry = "مصر ام الدنيا" ;
String MyGod     = "لا اله الا الله"; 
String myProphet = "محمد رسول الله";
String MyBook    ="القرآن العظيم";
String myGoal    ="جنة الفردوس";
boolean stillLife = true;


while(stillLife){
        System.out.println("لا اله الا الله محمد رسول الله");
}

}

 

979213111.jpg

 

 

Contact me now ..

 

 - Facebook - Linkedin - Youtube  - Twitter


#8 jamal_rrkk

jamal_rrkk

    عضو نشط

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

تاريخ المشاركة 10 July 2007 - 02:14 PM

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

اخي الكريم

جرب الكود التالي

Select  cust_id , serv_id , fdate , tdate  
From  table_name
Where to_number(to_char(fdate,’mm’)) = &p1 or 
to_number(to_char(fdate,’mm’)) < &p1 and to_number(to_char(tdate,’mm’)) >= &p1;


جزاكم الله كل خير
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/

#9 atmohammed

atmohammed

    عضو

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

تاريخ المشاركة 11 July 2007 - 09:49 AM

السلام عليكم ورحمته الله وبركاته
الحل وبكل بساطة
select cust_id
from customer
where to_date(05,'mm') between fdate and tdate

الطريقة مجربة, وان شاء الله تكون صحيحة

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

#10 MuhammadYassein

MuhammadYassein

    عضو نشط

  • الأعضــاء
  • 304 مشاركة
  • الاسم الأول:Muhammad
  • اسم العائلة:Yassein
  • البـلـد: Country Flag
  • الاهتمامات:Oracle
    SOA
    BPM
    ADF
    Java
    Forms
    Reports
    Analysis
  • المنصب الحالي:Senior Oracle SOA BPM Specialist

تاريخ المشاركة 11 July 2007 - 11:06 AM

الاخوة الاعزاء ........ انا مشكور جدا جدا ُ......... على المشاركات الطيبة و أسأل الله العظيم رب العرش الكريم ان يجازيكم خيراً ...
الا ان الاجابات غير سليمة ..........


المشكلة ... ان الجميع يفكر فقط في الشهر الذي تستحق الخدمة فقط ... و تبني جملة الاستعلام عليها ........... رغم ان المثال يوضح ان هناك خدمات كثيرة تبدأ من شهر غير الشهر الذي فية الخدمة ..... و لا يؤخذ في الحسبان ... و ان هناك خدمات تنتهي في شهر لاحق للشهر المستحق له الخدمة و ايضاً لا يوخذ في الحسبان .......
[/size]
سوف اوضح المثال اكثر ............

الخدمة رقم 1001 تبدأ من 1 - 4 - 2007 و تنتهي في 31 -12 -2007
تمام .............
يعني لو استخرجت التقرير عن الخدمات التي تخص شهر 4 سوف يظهر رقم الخدمة1001 لانة جزء منه يقع في شهر 4
و اذا استخرجت التقرير عن الخدمات التي تخص شهر 5 سوف يظهر رقم الخدمة 1001 ايضا لانة جزء منه يقع في شهر 5
و يستمر ظهور رقم الخدمة 1001 حتي شهر 12 لانة جزء منه يقع في شهر 12

و اذا اردت اظهر تقرير يوضح رقم الخدمة و الشهور التي تقع فيها يظهر التالي .......
Serv_id					 Monthes
-----------------------------------------
1001						   April
1001						   May
1001						   June
1001						   july
1001						   August
1001						   September
1001						   october
1001						   November
1001						   December


انا قلت في ابداية انها سهلة و معقدة ................. اي انها سهلة لاول وهله .... لكن الحل صعب .......
جزاكم الله خيرا ....

اتمني الكثير من المشاركات

اللهم اني احبك ... و احب من يحبك ... و احب كل عمل يقربني الى حبك ... اللهم أني أسألك رضاك و عفوك وجنة الفردوس

 
 
public void myInfo{

String myName    = "محمد ياسين" ;
String myCountry = "مصر ام الدنيا" ;
String MyGod     = "لا اله الا الله"; 
String myProphet = "محمد رسول الله";
String MyBook    ="القرآن العظيم";
String myGoal    ="جنة الفردوس";
boolean stillLife = true;


while(stillLife){
        System.out.println("لا اله الا الله محمد رسول الله");
}

}

 

979213111.jpg

 

 

Contact me now ..

 

 - Facebook - Linkedin - Youtube  - Twitter


#11 ANK

ANK

    عضو

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

تاريخ المشاركة 11 July 2007 - 01:30 PM

select *
from TABLE_NAME
where to_number('20070501') between
to_number(to_char('تاريخ بداية الخدمة','yyyymmdd')) and
to_number(to_char('تاريخ نهاية الخدمة','yyyymmdd'))

حيث ان '20070501' يمثل اول يوم في الشهر الذي تريد البحث عنه
جربها
واخبرني ان نجحت

#12 jamal_rrkk

jamal_rrkk

    عضو نشط

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

تاريخ المشاركة 11 July 2007 - 01:58 PM

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

SQL> select * from aaa;

   CUST_ID	SERV_ID FDATE	TDATE
---------- ---------- -------- --------
	  1001	  99998 01/04/07 31/12/07
	  1002	  99985 01/05/07 30/05/07
	  1003	  94564 15/05/07 15/06/07
	  1005	  68592 01/04/07 01/05/07
	  1015	  56955 05/05/07 15/06/07

SQL> Select  cust_id , serv_id , fdate , tdate  
  2  From  aaa
  3  Where to_number(to_char(fdate,'mm')) = &p1 or 
  4  to_number(to_char(fdate,'mm')) < &p1 and to_number(to_char(tdate,'mm')) >= &p1; 
Enter value for p1: 5
old   3: Where to_number(to_char(fdate,'mm')) = &p1 or
new   3: Where to_number(to_char(fdate,'mm')) = 5 or
Enter value for p1: 5
Enter value for p1: 5
old   4: to_number(to_char(fdate,'mm')) < &p1 and to_number(to_char(tdate,'mm')) >= &p1
new   4: to_number(to_char(fdate,'mm')) < 5 and to_number(to_char(tdate,'mm')) >= 5

   CUST_ID	SERV_ID FDATE	TDATE
---------- ---------- -------- --------
	  1001	  99998 01/04/07 31/12/07
	  1002	  99985 01/05/07 30/05/07
	  1003	  94564 15/05/07 15/06/07
	  1005	  68592 01/04/07 01/05/07
	  1015	  56955 05/05/07 15/06/07

SQL> /
Enter value for p1: 4
old   3: Where to_number(to_char(fdate,'mm')) = &p1 or
new   3: Where to_number(to_char(fdate,'mm')) = 4 or
Enter value for p1: 4
Enter value for p1: 4
old   4: to_number(to_char(fdate,'mm')) < &p1 and to_number(to_char(tdate,'mm')) >= &p1
new   4: to_number(to_char(fdate,'mm')) < 4 and to_number(to_char(tdate,'mm')) >= 4

   CUST_ID	SERV_ID FDATE	TDATE
---------- ---------- -------- --------
	  1001	  99998 01/04/07 31/12/07
	  1005	  68592 01/04/07 01/05/07

SQL> /
Enter value for p1: 3
old   3: Where to_number(to_char(fdate,'mm')) = &p1 or
new   3: Where to_number(to_char(fdate,'mm')) = 3 or
Enter value for p1: 3
Enter value for p1: 3
old   4: to_number(to_char(fdate,'mm')) < &p1 and to_number(to_char(tdate,'mm')) >= &p1
new   4: to_number(to_char(fdate,'mm')) < 3 and to_number(to_char(tdate,'mm')) >= 3

no rows selected

SQL> /
Enter value for p1: 6
old   3: Where to_number(to_char(fdate,'mm')) = &p1 or
new   3: Where to_number(to_char(fdate,'mm')) = 6 or
Enter value for p1: 6
Enter value for p1: 6
old   4: to_number(to_char(fdate,'mm')) < &p1 and to_number(to_char(tdate,'mm')) >= &p1
new   4: to_number(to_char(fdate,'mm')) < 6 and to_number(to_char(tdate,'mm')) >= 6

   CUST_ID	SERV_ID FDATE	TDATE
---------- ---------- -------- --------
	  1001	  99998 01/04/07 31/12/07
	  1003	  94564 15/05/07 15/06/07
	  1015	  56955 05/05/07 15/06/07

اخي الكريم الكود السابق يعمل في حال وجود سنة مالية واحدة في الجدول

وعدم تداخل العقود بين سنه مالية سابقة وسنه مالية لاحقة

اما في حال أن الجدول يحتوي علي اكثر من سنة مالية فيجب إضافة السنة المالية في متغير ثاني

جزاك الله كل خير
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/

#13 MuhammadYassein

MuhammadYassein

    عضو نشط

  • الأعضــاء
  • 304 مشاركة
  • الاسم الأول:Muhammad
  • اسم العائلة:Yassein
  • البـلـد: Country Flag
  • الاهتمامات:Oracle
    SOA
    BPM
    ADF
    Java
    Forms
    Reports
    Analysis
  • المنصب الحالي:Senior Oracle SOA BPM Specialist

تاريخ المشاركة 11 July 2007 - 02:30 PM

جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................
جزاك الله خيراُ ..........................


مشكوووووووووووووووووووووووووووووور جداُ
مشكوووووووووووووووووووووووووووووور جداُ
مشكوووووووووووووووووووووووووووووور جداُ

اللهم اني احبك ... و احب من يحبك ... و احب كل عمل يقربني الى حبك ... اللهم أني أسألك رضاك و عفوك وجنة الفردوس

 
 
public void myInfo{

String myName    = "محمد ياسين" ;
String myCountry = "مصر ام الدنيا" ;
String MyGod     = "لا اله الا الله"; 
String myProphet = "محمد رسول الله";
String MyBook    ="القرآن العظيم";
String myGoal    ="جنة الفردوس";
boolean stillLife = true;


while(stillLife){
        System.out.println("لا اله الا الله محمد رسول الله");
}

}

 

979213111.jpg

 

 

Contact me now ..

 

 - Facebook - Linkedin - Youtube  - Twitter