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

مشاكل وحلول


Osama Soliman

Recommended Posts

المشكلة :

اريد اعرض اسماء الموظفين الي رواتبهم متشابهه


الحل :
select a.empno,a.ename ,a.sal
from emp a , emp b
where a.sal=b.sal
and a.ename <> b.ename



المشاركة الأصلية :

سؤال تريكي.......بواسطة zedan

رابط هذا التعليق
شارك

المشكلة :

اريد معرفة الكود التى تم انشاء جدول به لاعادة انشاء هذا الجدول فى مستخدم أخر ؟


الحل :
بالملف المرفق



المشاركة الاصلية :

سكربت جديد لعرض امر انشاء الجدول.....بواسطة : خالد العوبثانى

Create_table_code.txt

رابط هذا التعليق
شارك

المشكلة :

اذا كان لدينا جدول الطلاب المكون من الحقول التاليه
(st_no ,st_name ,st_deg1 ,st_deg2,st_deg3 ,st_bd )
ماهي جمل sql التي تحقق التالي
1- إظافه حقل المعدل st_avg وحتساب الطلاب الناجحين فقط?
2- طباعه اسم الطالب ونتجته( ناجح في جميع المواد أو راسب ولو في مقرر واحد)?
3- استرجاع اسم الطالب واسم اليوم الاول في سنه ميلاده?
4- استرجاع اول يوم أحد في الشهر القادم?
5- استرجاع اليوم لنفس تاريخ اليوم في العام القادم?




الحـل :
بالملف المرفق


المشاركة الاصلثة :

اسئله ممكن مساعدتي في حلهاء sql plus..... بواسطة المشير1

solution.txt

رابط هذا التعليق
شارك

المشكلة :

كيف اجيب اول الشهر


الحل :

يمكنك جلب تاريخ أول الشهر باستخدام التابع TRUNC


Select trunc(sysdate,'month') from dual


أما تاريخ أخر الشهر

Select Last_Day(Sysdate) from Dual


تاريخ أول السنة

Select trunc(Sysdate,'Year') from dual


تاريخ آخر السنة

Select Add_monthes(Trunc(sysdate,'Year'),12) from dual



المشاركة الاصلية :

كيف اجيب أول الشهر ... بواسطة zedan

الحــل :

كيفية تغيير اسم حقل داخل جدول


الحل :

للحذف
alter table tableName drop coloumnName



للاضافة

alter table tableName add cloumnName



لتغيير الاسم :

alter table tablename rename column curren_tname to new_name



المشاركة الأصلية :
كيفية تغيير اسم حقل داخل جدول... بواسطة mam

رابط هذا التعليق
شارك

المشكلة :

مالفرق بين any,in,all


الحل :

in للبحث عن قيمة موجودة بين عدة قيم

مثال
select * from emp where SAL IN (1500,2850,1250)



النتيجة المتوقعة الحصول جلب جميع السجلات التي عمود الراتب فيها هو أحد القيم السابقة

any يمكن فهمها عن طريق مثال


select * from emp where SAL> any (1500,2850,1250)



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

all للبحث عن قيمة


select * from emp where SAL> any (1500,2850,1250)



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

المشاركة الأصلية :

مالفرق بين any,in,all, سؤال...بواسطة Syrian_Oracle

رابط هذا التعليق
شارك

المشكلة :

delete details with master, I want delete all detail with master


الحل :

اولاً : حذف القيد constriant الذى يربط الجدوالين وذلك باستخدام الامر
alter table employees drop constraint dept_id_fk
بافتراض ان اسم القيد dept_id_fk
ثانياً : انشاء القيد مرة اخرى باستخدام الصيغة :
alter table employees add constraint dept_id_fk foregin key
references department (id) on delete cascade
حيث تعمل on delete cascade على حذف السجلات الابناء Details التابعة للسجل الابوى Master التى يتم حذفه

مع ملاحظة خطوه on delete cascade لان عدم استخدام يعمل على حماية السجلات الابناء . الا اذا كانت هذا الاسلوب من متطلبات النظام مثال :
حذف مواعيد حضور وانصراف الموظفين
فانه عند حذف سجل الموظف الاصلى فاننا ليسنا فى حاجة للاحتفاظ بسجلات حضوره وانصرافه.



المشاركة الأصلية :

delete details with master, I want delete all detail with master...بواسطة AHM3ORA3

رابط هذا التعليق
شارك

  • بعد 3 شهور...

can please help me


to write function to find number of working days between to days
such as

create or replace function workingday (d1 date, d2 date) return number
this function must subtract the weekend day (friday and Saturday)
for example
'select workingday('1-may-07',20-may-07’)
the result must be 14

رابط هذا التعليق
شارك

  • بعد 5 شهور...
  • بعد 3 شهور...

لدى جدول الموظفين وهو يحتوى على


empno,ename,sal.sal level


واريد فى خلية sal level ان يعطينى ناتج بحيث ان لو الموظف راتبة 1000 يعطينى *

ولو 2500 يعطينى **

ولو 3900 ***

وهكذا بس لا اريد ان يكون ستاتيك بحيث لو ادخلت 15000 او اى رقم يعطينى الالفات بالنجوم

رابط هذا التعليق
شارك

  • بعد 1 شهر...
  • بعد 4 شهور...

لدى جدول الموظفين وهو يحتوى على

empno,ename,sal.sal level

واريد فى خلية sal level ان يعطينى ناتج بحيث ان لو الموظف راتبة 1000 يعطينى *

ولو 2500 يعطينى **

ولو 3900 ***

وهكذا بس لا اريد ان يكون ستاتيك بحيث لو ادخلت 15000 او اى رقم يعطينى الالفات بالنجوم

الحل

select empno,ename,sal,lpad('*',trunc(sal/1000),'*') sal_level
from emp

رابط هذا التعليق
شارك

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

ارجو منك افادتي العاجلة حول SQL 2005 فيما يلي

اريد اعداد sql server ليعمل كحادم لتخزين ملفات السيرفرات الاخرى...على سبيل المثال isa server او mom server حيث في سيرفر ال mom server يتطلب وجود sql server على الشبكة (الدومين) وذلك ليقوم بتخزين البيانات الخاصة به على sql server وقد حاولت دراسة sql server لكي استطيع جعله يتلقى البيانات من ال mom server او ال isa server ولكني لم استطع فكان كل الشرح تقريبا على اعداد القوائم وكل ما اريده هو ان يكون ال sql server يعمل فقط كجهاز حفظ لبيانات السيرفرات الاخرى هذا بالاضافة الى ان السيرفرات الاخرى لا تعلم بوجود ال sql server على الشبكة مع العلم انه تم تنزيل sql 2005 على السيرفر..واعتقد ان ذلك بسبب اعدادات ال sql server نفسه
ولا اخفي عليك انني ليس عندي خبرة في مجال ال sql server

ارجوك بشكل عاجل ان توضحوا لي كيف استطيع اعداد ال sql server ليقوم بتلقي الملفات من السيرفرات الاخرى ( وليس كيف يتم عمل قوائم) وكيف استطيع جعل السيرفرات الاخرى تحدد وجود sql server على الشبكة

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

رابط هذا التعليق
شارك

مشكور أخ أسامة على هذا العطاء المستمر وان شاء الله تكون هذه المشاركة في ميزان حساناتك

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...
  • بعد 3 شهور...
  • بعد 1 شهر...

السلام عليكم

عندي مشكله واتمنى القااء لها حل هنا

المشكله هي اني ابي اخلي الارقام في احد الحقول تكون اوتوماتيك ,,, يعني اذا بديت برقم 100 ابي الرقم اللي بعده اوتوماتيك يكون 101 ,, بدون الحاجه الى كتابه الارقام ,,,,

وانا استخدمت تعلميه ,,, ولم ينفذ ما اريده ,,,, بكتب التعليمه ,,, وابي اعرف شنو ناقصها ,,,

SQL:>CREATE  SEQUENCE DOCTORS_D_ID
INCREMENT BY 1
START WITH 100
MAXVALUE 500
NOCACHE
NOCYCLE;



وهذه الصوره توضح ما اريد


212101963.jpg

رابط هذا التعليق
شارك

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


انت ممكن يا اخى تعمل البرمجة ديه وانت فى الفروم والكود بسيط اوى وهو كالاتى

select	 nvl(max(table name )+1
into   blockname.itemname 
from table name;



شرح الكود يا اخى
انت بتقول هات اعلى قيمة فى العمود اللى انت عايز ثم يجمع عليا واحد

2- انت بتضع قيمة العمود فى البلوك اللى انت عارف اسمه ثم فى الايتم اللى هيظهر فيها القيمة
واسمه الجدول اكيد انت عارف




[email protected]

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية