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

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

صورة
- - - - -

كيف انشئ حقل صيغة من حقل صيغة اخر؟


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

#1 العصفور

العصفور

    عضو

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

تاريخ المشاركة 05 January 2007 - 12:24 AM

اخواني الكرام ....

حاولت انشاء حقل صيغة من حقل صيغة اخر وهو هنا باسم tax2 واستخدمت الطريقة التالية:
select price,(price * 0.1) as tax1,(tax1 -300) as tax2 
from cash;

لكن الطريقة كانت خاطئة ....
ارجو المساعدة ..وتصحيح صيغة الاستعلام..
وشكرا..

#2 هانى سند

هانى سند

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 743 مشاركة

تاريخ المشاركة 05 January 2007 - 12:53 AM

السلام عليكم

الأخ الكريم
ان كان عمود PRICE هو عمود في جدول CASH
فيمكنك استبدال الALIAS TAX1 في التعبير التاني بالتعبير الاول لتصبح الجملة صحيحة هكذا
select price,(price * 0.1) as tax1,((price * 0.1) -300) as tax2 
from cash;
بالتوفيق

#3 العصفور

العصفور

    عضو

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

تاريخ المشاركة 05 January 2007 - 11:19 AM

اخي العزيز hanon_OCP

اشكرك جدا على الرد ولكن هذاالحل غير مجدي بالنسبة لي فانا اعطيت مثال مبسط انما ما اود حسابه فعلا هو الاتي :

حقل الصيغة الاول = x1+ x2 +x3 .......x12
حقل الصيغة الثاني = ناتج حقل الصيغة الاول - 300
حقل الصيغة الثالث = ناتج حقل الصيغة الثاني * 10 %
حقل الصيغ الرابع = حقل الصيغةالاول + حقل الصيغة الثاني + حقل الصيغة الثالث

هل لاحظت الان اني سوف اكتب سطور طويلة في سبيل الحصول على الجملة ؟
هذا بالاضافة الى حاجتي لاظهار جميع الحقول ..

طبعا باستخدام الاستعلامات في الاكسس يتم الامر طبيعي ....

وشكرا

#4 هانى سند

هانى سند

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 743 مشاركة

تاريخ المشاركة 05 January 2007 - 01:20 PM

السلام عليكم
الأخ الكريم العصفور
حتي اذا كان عندك اكثر من عملية حسابية في السيليكت فلا توجد مشكلة في وضعها جميعا
فكتابة سطور طويلة لن تؤثر في صلاحية الجملة ستعطيك نفس النتيجة
ثم انك لن تكتب سوف تاخذ COPY AND PASTE :) :) من كل عملية حسابية و تزود عليها الجزء الاخر
ولم افهم ما معني كلمة حاجتي لاظهار كل الحقول
فما المشكلة هنا ؟؟؟
و اذا كنت لا تريد ان تكون جملة السيليكت طويلة جدا فيمكن وضع التعبيرت الحسابية التي تريدها في DATABASE FUNCTIONS ثم تضعها ف السيليكت مثلا
CREATE OR  REPLACE  FUNCTION  TAX (I_SAL IN  NUMBER ) RETURN  NUMBER IS  
V_PER NUMBER :=.01;
V_TAX NUMBER;
BEGIN  
V_TAX:=NVL(I_SAL,0)*V_PER;
RETURN V_TAX;
EXCEPTION WHEN OTHERSTHEN RETURN 0;
END;
ثم في السيليكت يمكنك ان تعمل علي هذه الفانكشن بدلا من كتابة التعبير
أخيرا اذكرك انه يمكن استعمال الCOLUMN ALIAS في الORDER BY
ولا يمكن استعماله في كلا من WHERE CLAUSE ,GROUP BY ,SELECT CLAUSE

بالتوفيق

تم التعديل بواسطة hanon_OCP, 05 January 2007 - 03:11 PM.


#5 العصفور

العصفور

    عضو

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

تاريخ المشاركة 05 January 2007 - 11:39 PM

اخي الكريم hanon_OCP

اشكرك على التوضيح ....

وسوف اجرب طريقة الدوال FUNCTIONS