PDA

View Full Version : راهنمایی در مورد دستورات sql



morteza_dehghan
دوشنبه 22 اردیبهشت 1382, 19:39 عصر
سلام

من چند جدول را با هم join کرده ام و میخواهم مجموع یک فیلد خاص را داشته باشم مشکل من این است که چون چند جدول با هم join هستند مقدار واقعی به من نمیدهد و زمانی که از گزینه distinct با فیلد دیگری استفاده می کنم از نوع دستورات اشکال میگیرد و مضمون پیغام آن این است که یک تابع را با فیلد نمی توان آورد حالا چگونه باید کار کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

از دستور زیر اشکال میگیرد

"select DISTINCT code,SUM(forosh) as exp1 FROM ( ts11 LEFT OUTER JOIN vam ON ts11.code = vam.code ) LEFT OUTER JOIN maskan ON ts11.code = maskan.code where shakhes=false "


با تشکر

Vahid_Nasiri
دوشنبه 22 اردیبهشت 1382, 23:04 عصر
من با قسمت where عبارت شما کاری ندارم ولی بدیهی است که وقتی از distinct استفاده می کنید بعد از آن SUM معنی و مفهوم ندارد. در راهنمای sql server دستور سام به صورت زیر تعریف شده است :

SUM(DISTINCT column_name)

morteza_dehghan
سه شنبه 23 اردیبهشت 1382, 00:48 صبح
سلام
خدمت آقای نصیری عزیز که وقت گرانبهاتون را در اختیار ما گذاشتین

ببینید مشکل من این است که می خواهم مجموع یک فیلد خاص را که در یک جدول است و ان جدول باچند جدول دیگر join شده است را بدست بیاورم. ولی زمانی که از دستور sum استفاده میکنم با توجه به اینکه امکان دارد این فیلد من با توجه به join انجام شده چندین با تکرار شود و جواب من اشتباه شود در نتیجه باید با کمک دستور distinct و فیلد کلید اصلی از رکورد های تکراری جلو گیری کنم

لطفا بفرمائید چگونه میتوانم اینکار ار بکنم
با تشکر فراوان

vadood
سه شنبه 23 اردیبهشت 1382, 08:26 صبح
امیدوارم برات گویا باشه:


SELECT SUM(fieldtosum) FROM (SELECT DISTINCT table1.a AS fieldtosum FROM table1 INNER JOIN table2 ON table1.a=table2.a WHERE ...) AS SQ



فیلد forosh تو کدوم یکی از table هات هست؟

morteza_dehghan
سه شنبه 23 اردیبهشت 1382, 13:14 عصر
سلام

ببینید من فیلد فروش را مثال زدم و لی فکر میکنم راهنمایی شما مفید باشه فکر میکنم همانی است که من می خواستم من در کل یک جدول اصلی دارم و مابقی جداول وابسته هستند. وقتی روی فیلد کلید اصلی بتوانم دستور distinct را اعمال کنم همان نتیجه مطلوب را می دهد .

با تشکر از آقا ودود و آقای نصیری