SQL Server - باستخدام الاسم المستعار للعمود في مسمة فرعية

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

  •  05-07-2019
  •  | 
  •  

سؤال

لدي الاستعلام التالي الذي يعمل بشكل جيد مع MySQL ولكنه يرفض العمل مع SQL Server:

SELECT table1.someField AS theField, 
       COUNT(table2.someField) / (SELECT COUNT(someField) FROM table1 WHERE someField = theField),
FROM table1 LEFT JOIN table2 ON table1.someField = table2.someField

لا يبدو أن SQL Server مثل الاسم المستعار في الاسم الفرعي. قيل لي إنني بحاجة إلى استخدام CTE لكنني لم أستخدمها من قبل. هل هذا صحيح؟

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

المحلول

قد تكون المشكلة في الالتباس في السبع الفرعي

SELECT COUNT(someField) FROM table1 WHERE someField = theField

ال someField في هذه الحالة سيكون محليًا - ولكن يمكنك الوصول إلى table1.someField نفس الشيء.

ماذا عن

SELECT COUNT(t3.someField) FROM table1 t3 WHERE t3.someField = table1.someField 

?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top