بتاريخ: 13 أغسطس 201411 سنة comment_253630 يوجد عندى جدوالين 1- PY_MATURITIES 2-PY_MAT_TEMP SQL> DESC PY_MATURITIES Name ------------------------------- -------- ---- FILE_NO MAT_YEAR MAT_MONTH MAT_C_CODE MAT_SARF MAT_PAGE MAT_VALTYPE MAT_VAL MAT_STOP MAT_DATE MAT_S_DATE MAT_C_TYPE SQL> DESC PY_MAT_TEMP Name ------------------------------- -------- ---- FILE_NO MAT_YEAR MAT_MONTH MAT_PAGE MAT_VAL_141 MAT_VALTYPE_141 MAT_VAL_142 MAT_VALTYPE_142 اريد ان يصبح PY_MATURITIES.MAT_VAL = PY_MAT_TEMP.MAT_VAL_141 ثم كتبت هذا الامر update PY_MATURITIES set MAT_VAL= ( SELECT MAT_VAL_141 FROM PY_MAT_TEMP WHERE MAT_YEAR=2014 AND MAT_MONTH=8)WHERE ;FILE_NO=FILE_NO AND MAT_YEAR=2014 AND MAT_MONTH=8 AND MAT_C_CODE=141 لكنه اعطانى رسالة خطأ * ERROR at line 1: ORA-01427: single-row subquery returns more than one row ارجو كتابة امر SQL الصحيح تقديم بلاغ
بتاريخ: 13 أغسطس 201411 سنة comment_253633 اعتقد والله اعلم ياخي ان عندك اكثر من حقل في الداتا بيز بتاعك ولذلك من الصعب يدخلهم كلهم في تكست واحد لذلك ممكن تعدل عليه هكذا وان شاء الله بينفذ معك update PY_MATURITIES set MAT_VAL= ( distinct SELECT MAT_VAL_141 FROM PY_MAT_TEMP WHERE MAT_YEAR=2014 AND MAT_MONTH=8)WHERE ;FILE_NO=FILE_NO AND MAT_YEAR=2014 AND MAT_MONTH=8 AND MAT_C_CODE=141 تقديم بلاغ
بتاريخ: 13 أغسطس 201411 سنة comment_253634 ايضا هذا استخدم احد هذه الاوامر في جملة الاستعلام حقك Use ANY, ALL, IN, or NOT IN to specify which values to compare or reword the query so only one row is retrieved تقديم بلاغ
بتاريخ: 13 أغسطس 201411 سنة comment_253650 انت ممكن تعدلها بانك تشيل الـ = الاولي وتكتب in بس لازم تحط داتا قليلة الاول وتجرب عليها عشان تعرف هو غير صح ولا لا تقديم بلاغ
بتاريخ: 14 أغسطس 201411 سنة comment_253657 هى تنفع بال PL/SQL لو عندك خلفية عنها عن طريق استخدام الكيرسور تتم العملية دية بمنتهى السهولة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.