جمع مقادیر و نمایش اطلاعات یک فرد در دو بانک اطلاعاتی متفاوت
با سلام و احترام خدمت دوستان
من یک سوال داشتم و اینکه من در SQL Server 2008 دو بانک اطلاعاتی متفاوت دارم که هر کدام نیز دارای تعدادی جدول هستند مثلا 2 بانک اطلاعاتی به نام های B1 که دارای جدولی به نام T1 می باشد و این جدول دارای 3 فیلد Cod و Name و Famili هست که فیلد Cod فیلدی از نوع کلید اصلی می باشد ونیز یک بانک اطلاعاتی دیگر به نام های B2 که دارای جدولی به نام T2 می باشد و این جدول دارای 2 فیلد Cod و Number هست که فیلد Cod فیلدی از نوع کلید فرعی می باشد . حالا مثلا من می خواهم نام و فامیل و جمع نمرات فردی با کد 14 را پیدا نمایم . من به این صورت کد خود را می نویسم ولی خطا میده و وقتی قسمت SUM(B2.[dbo].T2.Number) از دستور زیر حذف می کنم کد خطا نمیده.
Select B1.[dbo].T1.Name ,B1.[dbo].T1.Famili , SUM(B2.[dbo].T2.Number) from B1.[dbo].T1 , B2.[dbo].T2 where B1.[dbo].T1.Cod = B2.[dbo].T2.Cod and B1.[dbo].T1='14'
لطفا راهنمایی نمایید . با تشکر فراوان
1 پاسخ
سلام و درورد کد شما اشتباه هست چون دارید Sum که یه عملیات aggregate هست رو بدون استفاده از Group By در قسمت Select به کار میبری.
کدتون رو تغییر بدید به حالت زیر ضمناً تو کد خودت قبل از عدد 14 که نوشتی اسم جدول که T1 باشه رو اوردی اما فیلدش رو که cod هست ننوشتی.
Select B1.[dbo].T1.Name ,B1.[dbo].T1.Family , SUM(B2.[dbo].T2.Number) from B1.[dbo].T1 , B2.[dbo].T2 where B1.[dbo].T1.Cod = B2.[dbo].T2.Code and B1.[dbo].T1.Cod='3'group by B1.[dbo].T1.Name ,B1.[dbo].T1.Family
جدول T1:
جدول T2:
خروجی و جواب نهایی:
موفق باشید