PDA

View Full Version : گرفتن تعداد دفعات تکرار یک رکورد



MShirzadi
پنج شنبه 01 شهریور 1386, 12:15 عصر
سلام
چطور می توان تعداد دفعات تکرار یک رکورد را در یک جدول بدست آورد
یعنی فکر کنید که ما دو تا جدول داریم و یکی Parent هست و دیگری Child حالا می خوام بدونم که چطور میتوانم بدونم که یک کلید از جدول Parent در جدول Child چند بار تکرار شده است
ممنونم

رها
پنج شنبه 01 شهریور 1386, 12:57 عصر
select count(*) as recCount from child where fieldname=fieldvalue

به جای child نام جدول رو قرار بده، fieldname رو اسم همون فیلد کلید parent قرار بده و به جای fieldvalue مقدار مورد نظر رو قرار بده.

MShirzadi
پنج شنبه 01 شهریور 1386, 15:51 عصر
دوست عزیز از توجه شما بسیار ممنونم ولی من این طوری نمی خواستم این خیلی ساده هست من می خواستم که تعداد دفعات تکرار کورد ها رو جلوی اونها بنویسه و از اونا Distinct بگیره
من یه یکم روش کار کردم و جواب گرفتم کدش هم اینجوری هست :


Select distinct * ,
(Select Count(a) From TableName T1 where T1.a = T2.a) ColCount
From TableName T2

رضا عربلو
پنج شنبه 01 شهریور 1386, 16:45 عصر
این چیزی که شما نوشتید رو می شود ساده تر هم نوشت.


select count(a) as recCount from child group by a

MShirzadi
پنج شنبه 01 شهریور 1386, 23:49 عصر
حالا اگر ما دو تا Table داشته باشیم که یکی parent و دیگری Child باشه ما چطوری از Group by استفاده می کنیم
البته من از کد خودم به شکل زیر استفاده می کنم :


Select * , ( Select Count(*) From TblChild r1 where r1.a = r2.a) from TblParent r2

من یه تازه وارد Sql Server هستم اگه راه آسونتری داره لطفا به من بگید
از تمام عزیزان متشکرم

Hamid.Kad
شنبه 03 شهریور 1386, 17:25 عصر
اصطلاحات parent و child یه جورایی آدم رو یاد ساختار سلسله مراتبی و وراثت میندازه.
بهتره از اصطلاحاتی مثل pk , fk ,master-detail و ... استفاده بشه.

اگه این براتون مهمه که فقط رکوردهایی از جدول dtl تعداد تکرارشون نشون داده بشن که توی جدول Master وجود دارند روش خودتون صحیحه و اگر هدفتون نمایش تعداد رکوردها در جدول dtl هست جناب عربلو گزینه بهتری رو ارائه کردند.

_alish_
یک شنبه 04 شهریور 1386, 07:54 صبح
SELECT COUNT(Orders.CustomerID) AS Count, Orders.CustomerID
FROM Customers INNER JOIN
Orders ON Customers.CustomerID = Orders.CustomerID
GROUP BY Orders.CustomerID

fereshtehrahimi
دوشنبه 05 شهریور 1386, 13:39 عصر
سلام من یک سوال مشابه داشتم ممنون می شم اگه جواب بدید
درsql چه طور می تونم اول مجموع یک فیلد را حساب کنم بعد max مقدار رابدست بیاورم

MShirzadi
سه شنبه 06 شهریور 1386, 03:54 صبح
ببخشید می شه توضیح بدی من متوجه نشدم تو دقیقا چی می خوای

AminSobati
چهارشنبه 07 شهریور 1386, 10:16 صبح
SELECT MAX(UnitPrice), SUM(UnitPrice) FROM Products