amal4u بتاريخ: 3 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 3 سبتمبر 2010 السلام عليكمعندي 2 جداول الأول جدول الزبائن CLIENTو الثاني جدول الفواتير FACTUREجدول الفواتير يتضمن الزبائن CODE_CLI و الشخص المسؤول CODE_GEST , و الفاتورة CODE_FACT و الأيام DATEعندي في هذا الجدول مجموعة من lines تضم نفس CODE_CLI و CODE_FACT و لكن ب CODE_GEST و DATE مختلفةالجدول الأول يتضمن CLI_CODE_GEST و CODE_CLIENTأود أن أعمل UPDATE على الجدول CLIENTلكي أستطيع أن أعطي ل CLI_CODE_GEST الشخص المسؤول CODE_GEST ذو أول (أقدم) تاريخ DATEفعلتها على الشكل التاليUPDATE CLIENT SET CLI_CODE_GEST = (select CODE_GEST from FACTURE where CODE_CLI=CODE_CLIENT and DATE in (select min(DATE) from FACTURE where CODE_CLI=CODE_CLIENT group by CODE_CLI))المشكلة في الرسالةORA-01427 Sous-interrogation ramenant plusieurs lignes اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 5 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 5 سبتمبر 2010 السلام عليكم مشكله حضرتك ان جمله ال Update ال select الفيها بتجيب اكتر من rowعلشان كده بيظهر الخطأ ده وعلى قد ما فهمت من شرحك لو الزبون لي فاتورتين في نفس اليوم وبفرض كمان ان CODE_GESTمختلف في الفاتورتين فأكيد هيظهر الخطأ ده اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amal4u بتاريخ: 6 سبتمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 سبتمبر 2010 و عليكم السلاممن جوابك فهمت خطئيلكن كيف يمكن لي أن أتفادى هذا المشكليعني كيف يمكن لي أن اجيب سطر واحد من "لو الزبون لي فاتورتين في نفس اليوم وبفرض كمان ان CODE_GESTمختلف في الفاتورتين"؟؟؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 6 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 6 سبتمبر 2010 ممكن تزودي في ال subqueryand rownum=1كده هيجبلك واحد بسبس على فكره على الفهمته تركيبه الجدولين كده مش صح اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amal4u بتاريخ: 6 سبتمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 سبتمبر 2010 مفهمتش كيف اعملها يعني اين أضيف rownum اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 6 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 6 سبتمبر 2010 UPDATE CLIENT SET CLI_CODE_GEST = (select CODE_GEST from FACTUREwhere CODE_CLI=CODE_CLIENT and DATE in (select min(DATE)from FACTURE where CODE_CLI=CODE_CLIENTgroup by CODE_CLI)and rownum=1) اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amal4u بتاريخ: 6 سبتمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 سبتمبر 2010 شكرالكن وجدت مشكلة أخرى Impossible de mettre à jour CLI_CODE_GEST avec NULLعملت هذا الكود UPDATE CLIENT SET CLI_CODE_GEST = (select CODE_GEST from FACTUREwhere CODE_CLI=CODE_CLIENT and CODE_GEST is not null and DATE in (select min(DATE)from FACTURE where CODE_CLI=CODE_CLIENTgroup by CODE_CLI)and rownum=1)يعطيني نفس المساج اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 7 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 7 سبتمبر 2010 ;كده مشكلتك ان ال rowالجه قيمه CODE_GEST الفيه ب null واكيد CLI_CODE_GEST not null فظهرت المشكله دى وعشان تستبعدي ال rows الفيها ال nullزودي UPDATE CLIENT SET CLI_CODE_GEST = (select CODE_GEST from FACTUREwhere CODE_CLI=CODE_CLIENT and CODE_GEST is not null and DATE in (select min(DATE)from FACTURE where CODE_CLI=CODE_CLIENTgroup by CODE_CLI)and rownum=1and CODE_GEST is not null )بس زي ماقلتلك فكره الجدولين كده مش مظبوطه حاوبى تشرحي انت عايزه تعملي ايه يمكن يكون في حاجه احسن اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amal4u بتاريخ: 7 سبتمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 سبتمبر 2010 ;كده مشكلتك ان ال rowالجه قيمه CODE_GEST الفيه ب null واكيد CLI_CODE_GEST not null فظهرت المشكله دى وعشان تستبعدي ال rows الفيها ال nullزودي UPDATE CLIENT SET CLI_CODE_GEST = (select CODE_GEST from FACTUREwhere CODE_CLI=CODE_CLIENT and CODE_GEST is not null and DATE in (select min(DATE)from FACTURE where CODE_CLI=CODE_CLIENTgroup by CODE_CLI)and rownum=1and CODE_GEST is not null )بس زي ماقلتلك فكره الجدولين كده مش مظبوطه حاوبى تشرحي انت عايزه تعملي ايه يمكن يكون في حاجه احسن نفس المشكلة و نفس المساج أختي سارةالجدولين عندي من الاول يعني مفروضين عليا استعملهمانا عاوزة اخر تاريخ للفاتورة اعطيه للزبون في جدول CLIENT اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 8 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 8 سبتمبر 2010 معلش انا مأخدتش بالي انك اصلا حاطه الشرط ده بس هو كده فعلا ماجبش ال row الفيه CODE_GEST ب nullوالمشكله دى ظهرت تانى لان الsubquery ماجبش اي row فأعتبر القيمه nullجربي كده UPDATE CLIENT SET CLI_CODE_GEST = (select NVL(CODE_GEST,CLI_CODE_GEST) from FACTURE where CODE_CLI=CODE_CLIENT and DATE in (select min(DATE) from FACTURE where CODE_CLI=CODE_CLIENT group by CODE_CLI) and rownum=1 ) كده لو قيمه CODE_GEST ب NULL هيسيب CLI_CODE_GEST زي ما هي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amal4u بتاريخ: 8 سبتمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 سبتمبر 2010 (معدل) معلش انا مأخدتش بالي انك اصلا حاطه الشرط ده بس هو كده فعلا ماجبش ال row الفيه CODE_GEST ب nullوالمشكله دى ظهرت تانى لان الsubquery ماجبش اي row فأعتبر القيمه nullجربي كدهUPDATE CLIENT SET CLI_CODE_GEST = (select NVL(CODE_GEST,CLI_CODE_GEST) from FACTURE where CODE_CLI=CODE_CLIENT and DATE in (select min(DATE) from FACTURE where CODE_CLI=CODE_CLIENT group by CODE_CLI) and rownum=1 ) كده لو قيمه CODE_GEST ب NULL هيسيب CLI_CODE_GEST زي ما هي شكرا جربت الكود لكن نفس الميساج كده احترت و مش عارفة اعمل ايه تم تعديل 8 سبتمبر 2010 بواسطة amal4u اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 8 سبتمبر 2010 تقديم بلاغ مشاركة بتاريخ: 8 سبتمبر 2010 UPDATE CLIENT SET CLI_CODE_GEST = (select NVL(CODE_GEST,CLI_CODE_GEST) from FACTUR where CODE_CLI=CODE_CLIENT and DATE in (select min(DATE) from FACTUR where CODE_CLI=CODE_CLIENT and CODE_GEST is not null ) and CODE_GEST is not null and rownum=1 ) where CODE_CLIENT in (select CODE_CLI from FACTUR where CODE_CLI=CODE_CLIENT and Date in (select min(Date) from FACTUR where CODE_CLI=CODE_CLIENT and CODE_GEST is not null ) and rownum=1 and CODE_GEST is not null ) اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amal4u بتاريخ: 8 سبتمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 سبتمبر 2010 شكرا على مجهودكعمل الكود معي بطريقة فعالةاشكرك كثيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.