ورود

View Full Version : سوال: این کوئری چطوری نوشته میشه؟



hahaie
سه شنبه 17 مرداد 1391, 18:56 عصر
سلام.
دوستان من یه کوئری میخوام بنویسم که اون رو توی sql نوشتم به مشکل بر خوردم کسی میدونه اون رو با لینکیو چطوری میشه نوشت؟
میخوام نام هر فرد با مبلغ بدهیش رو برگردونه.
جدولها اینهاست:
1. Tbl_moshtari=id،name
2. Tbl_factor=id_moshtari،gheimate_kol
3. Tbl_pardakht=id_moshtari،mablagh
به این صورت که برای هر فرد مجموع قیمت کل از جدول فاکتور را از مجموع مبلغ های پرداختی از جدول پرداخت کم کنه که میزان بدهی یا مانده حساب هر فرد بدست بیاد.
کوئری ای که نوشتم اینه اما اشتباه حساب میکنه:

Select tbl_moshtari.name,sum(tbl_pardakht.mablagh)-sum(tbl_factor.gheimate_kol) from tbl_moshtari,tbl_factor,tbl_pardakht where tbl_factor.id_moshtari=tbl_moshtari.id and tbl_pardakht.id_moshtari=tbl_moshtari.id
اما میخوام با لینکیو بنویسم که حاصلش در یه گرید ویو ریخته بشه.

corona
جمعه 20 مرداد 1391, 12:41 عصر
سلام دوست عزیز. برای نوشتن این کوئری راههای مختلفی وجود داره که دو تاش که به ذهن من اومده رو برات می نویسم.
باید کل مبلغ فاکتور هر شخص رو بدست بیاری بعد کل مبلغ پرداختی هر شخص رو جدا بدست بیاری از هم کم کنی تا بشه مبلغ مانده
به دو روش این کار رو برات انجام دادم:


SELECT Result.cust_id ,SUM(Result.totalPrice) AS MandeHesab
FROM
(
SELECT fact.cust_id , SUM(fact.total_price) TotalPrice
FROM customer cm
INNER JOIN factor fact ON fact.cust_id = cm.id
GROUP BY (fact.cust_id)
UNION ALL
SELECT pd.cust_id , SUM(pd.paidprice) * -1 AS TotalPrice
FROM pardakht pd
INNER JOIN customer cust ON cust.id = pd.cust_id
GROUP BY pd.cust_id
)AS Result
GROUP BY Result.cust_id


روش دوم با استفاده از یکSubQuery


SELECT fact.cust_id , SUM(fact.total_price)
+ (SELECT SUM(pd.paidprice) * -1 AS TotalPrice
FROM pardakht pd WHERE fact.cust_id = pd.cust_id
GROUP BY pd.cust_id ) TotalPrice
FROM customer cm
INNER JOIN factor fact ON fact.cust_id = cm.id
GROUP BY (fact.cust_id)

hahaie
یک شنبه 22 مرداد 1391, 17:52 عصر
سلام دوست عزیز.ممنون از اینکه جواب دادید.
من روی هر دوش کار کردم اما ارور میده نفهمیدم چرا