Yousef_Elkordi بتاريخ: 25 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 السلام عليكماخواني ... لدي سؤال بسيط وهو اول مشاركة لي بالمنتدىاريد ان اقارن بين تاريخين و ايجاد الاكبر بينهمولكم جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
TROYMAN بتاريخ: 25 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 السلام عليكم... تتم عملية المقارنة بشكل مباشر: SQL> select ename,hiredate from emp where hiredate<to_date('18 12 1980','dd mm yyyy') 2 / ENAME HIREDATE ---------- --------- SMITH 17-DEC-80 تم تحويل السلسلة إلى تاريخ لأنها لا تتطابق مع الفورمات الخاص بالتاريخ DD-MON-RR , المثال التالي يبين عملية المقارنة مع قيم تطابق الفورمات القياسي فلا حاجة لتحويلها: SQL> select ename,hiredate from emp where hiredate<'18-DEC-80' 2 / ENAME HIREDATE ---------- --------- SMITH 17-DEC-80 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 25 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 أخي الحبيب troman أعتقد أن الاخ يقصد أن المتغيريين مجهولين محتاجين عمل block pl/sqlعفوا أعتقد هذا مايقصد الاخ ليس إلا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
TROYMAN بتاريخ: 25 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 (معدل) جزاك الله خيراً أخي mustafagamiel على التنبيه,ولكن في هذه الحالة يجب تحديد الفورمات المدخل من قبل المستخدم , هذا المثال يوضح حالتين التاريخ الأول يدخل بصيغة غير قياسية والثاني يدخل بصيغة قياسية : declare Pd1 date:=to_date('&Date1','dd mm yyyy'); Pd2 date:='&Date2'; begin if Pd1>Pd2 then dbms_output.put_line('Date1>Date2'); elsif Pd1<Pd2 then dbms_output.put_line('Date1>Date2'); else dbms_output.put_line('Date1 Equal Date2'); end if; end; / أتمنى أن يكون هذا ما قصده الأخ بسؤاله... تم تعديل 25 أبريل 2009 بواسطة TROYMAN اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 25 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 تستحق التحية يا TROYMAN على مجهوداتك جزاك الله كل خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Yousef_Elkordi بتاريخ: 25 أبريل 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 شكرا لكم اخواني الاعزاءواسف على قلت التوضيحبس طلبي هو انة لدي DB مدخل فيها التواريخواريد ايجاد الاكبر من بين هذة التوايخوللتوضيح اكثر فاكثرفانة لدي DB فيها البينات التاليةname Date Cust_code------ --------|-----------------------|---------------------------Ali 20\12\2009 c2020yousef 12\12\2009 c2430Ali 22\1\2009 c2020Ahmed 20\12\2009 c2000Ali 06\11\2007 c2020كما ترون لدي اسم الشخص ( علي ) مكرر 3 مرات و لدي الكثير مثل هذا التكرار بال DBوقدرت ان احصر عدد الاشخاص الذين لديهم تكرار بال DBولكن الان لدي مشكلة ... وهي ان التكرارات ( للشخص الواحد ) بتواريخ مختلفة , فاريد Query تعمل على جلب اخر تاريخ لكل التكرارات الموجودة بالاسماء التي قمت بحصرها قبل ذلكوشاكر لكم سرعة الرد .. و اسف على قلت التوضيح باول مرة . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
TROYMAN بتاريخ: 25 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 25 أبريل 2009 مسا الخير...الحل بسيط باستخدام Group by select name,max(Date) from TableName group by name; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Yousef_Elkordi بتاريخ: 26 أبريل 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 26 أبريل 2009 السلام عليكمشكرا لك اخي العزيز على سرعى الرد ولكن ال MAX تاتيني بأكبر تاريخ لكافة الاسماء .. و انا اريدها لكل شخص لة تكرار فقط بمعني اخر :لدي Ali ثلاث تواريخ و لدى MOhamed تاريخينولدى Salim اربع تواريخفانا اريد ان اكتب Query تاتي لي بأكبر تاريخ لكل شخص منهمولا اريد ان اطبق ال MAX على كل شخص على حدى واتمنى ان تكون الفكرة و صلت لكم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 26 أبريل 2009 تقديم بلاغ مشاركة بتاريخ: 26 أبريل 2009 إذن زود having على ماسبقزي كده select name,max(Date) from TableName group by name having count(name)>1; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.