نتيجة العمود المحسوب لـ SQL Server 2005 من إجمالي قيمة حقل جدول آخر

StackOverflow https://stackoverflow.com/questions/166518

سؤال

آسف على عنوان السؤال الطويل.

أعتقد أنني خاسر في هذا ولكن في فرصة ضئيلة.

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

أي.

لديك طاولة تسمى "كوب"، وهذه الطاولة بها طفل يسمى "اللون" (مما يجعل رأسي يؤلمني في المملكة المتحدة ولكن البائع من الولايات المتحدة، فماذا ستفعل؟) وهذا بدوره به طفل يسمى "" مقاس'.يحتوي كل جدول على حقل يسمى مباع.

يزيد الحجم المباع بنسبة 1 لكل كوب من لون وحجم معين مباع.

تريد أن يكون color.sold إجماليًا لـ SUM size.sold حيث size.colorid = color.colorid

تريد أن يكون mug.sold إجماليًا لـ SUM color.sold حيث color.mugid = mug.mugid

هل هناك أي طريقة لجعل mug.sold وcolor.sold يعملان بمفردهما أم سأضطر إلى التلاعب بالمشغلات؟

هل كانت مفيدة؟

المحلول

وأنت لا يمكن أن يكون عمود محسوب الرجوع مباشرة جدول مختلف، ولكن هل يمكن أن يكون مرجع وظيفة يحددها المستخدم. وهنا رابط لمثال على تنفيذ حل من هذا القبيل.

http://www.sqlservercentral.com/articles/User -Defined + وظائف / complexcomputedcolumns / 2397 /

نصائح أخرى

لا، ليس من الممكن القيام بذلك.لا يمكن اشتقاق العمود المحسوب إلا من قيم الحقول الأخرى الموجودة في نفس الصف.لحساب إجمالي من جدول آخر، يلزمك إنشاء طريقة عرض.

إذا كان تطبيقك يحتاج إلى عرض الإحصائيات، فاطرح الأسئلة التالية:

  1. هل من الضروري حقًا إظهار ذلك في الوقت الفعلي؟إذا كان الأمر كذلك لماذا؟إذا كان من الضروري حقًا القيام بذلك، فسيتعين عليك استخدام المشغلات لتحديث الجدول. هذا روابط لمقالة ويكيبيديا قصيرة عن إزالة التطبيع.ستؤثر المشغلات على أداء الكتابة في تحديثات الجدول وتعتمد على تنشيط المشغلات.
  2. إذا كان ذلك ضروريًا فقط لأغراض إعداد التقارير، فيمكنك إجراء الحساب في طريقة عرض أو تقرير.
  3. إذا كان من الضروري دعم التقارير المخصصة المتكررة، فقد تكون في عالم سوق البيانات وعملية ETL بين عشية وضحاها.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top