PDA

View Full Version : حرفه ای: جمع گرفتن در انتهای query و نمایش در گرید ویو



roxe77
شنبه 22 مهر 1391, 14:43 عصر
سلام من یه query دارم که یه سری مقادیر رو میاره تو دیتا گرید این دیتا گرید هم به اون دیتا تیبل باند هست
میخوام آخرین سطر اون دیتا گرید جمع چند تا ستونش رو نشون بده
مثل
93930

این جمع رو نمیخوام با جمع کردن گرید ویو انجام بدم کد اس کی ال رو میخام که یه سطر توتال بهم بده و تو گرید ویو دیده بشه

boysilent
شنبه 22 مهر 1391, 14:54 عصر
اگه منظورتو درست متوجه شده باشم؟؟
i=dataGridView1["نام ستون در گریدویو", شماره سطر].Value.tostring();
داخل یه حلقه خیلی راحت میتونی مقدارش رو داخل یه متغیر بریزی و بعدش داخل یه text box

veniz2008
شنبه 22 مهر 1391, 16:09 عصر
سلام. ابتدا یک کوئری جدید بصورت زیر بنویسید و اونو درون دیتاتیبل دوم بریزید:
93934
ابتدا تعداد سطرهای دیتاتیبل اول رو بشمارید ( مثلا a تا میشه). حالا یه سطر جدید بصورت زیر به دیتاتیبل اول(همونی که در شکل گذاشته بودید) خودتون اضافه کنید:
;()dt1.Rows.Add
حالا مقادیر دیتاتیبل دوم خودتون رو که شامل جمع ستون ها هستش بصورت زیر به مقادیر مناسب از دیتاتیبل اول نسبت بدید. یعنی ستون : Total رو که از نوع رشته هستش به ستون name اختصاص بدید. ستون size از دیتاتیبل دوم رو به ستون size از دیتاتیبل اول اختصاص بدید و ...
اختصاص دادن مقادیر دیتاتیبل دوم به دیتاتیبل اول :

dt1.Rows[a]["name"] = dt2.Rows[0]["Total"].ToString();
dt1.Rows[a]["size"] = dt2.Rows[0]["size"].ToString();
dt1.Rows[a]["price"] = dt2.Rows[0]["price"].ToString();
dt1.Rows[a]["Lox"] = dt2.Rows[0]["Lox"].ToString();
dataGridView1.DataSource = dt1;

roxe77
شنبه 22 مهر 1391, 22:21 عصر
سلام
من این کار رو میتونم انجام بدم ! چند تا مشکل هست ! میخوام همون کوری query یه سطر از تهش اتومات اضافه کنه ! یعنی چیزی تو مایه های union اس کیو ال ! یا هر چیز دیگه:| یه مثال برات میزارم ! ولی من زیاد حالیم نشد!!
;with companyMaster(company, product, price) as
(select 'CompanyA', 'Product 7', 14.99 union all
select 'CompanyA', 'Product 3', 45.95 union all
select 'CompanyA', 'Product 4', 12.00 union all
select 'CompanyB', 'Product 3', 45.95 union all
select 'CompanyC', 'Product 7', 14.99 union all
select 'CompanyC', 'Product 3', 45.95
)

SELECT company
, product
, price
FROM companyMaster
ORDER BY company,
, product,
, price

UNION

SELECT company + 'Total'
, ''
, SUM(price)
FROM companyMaster
GROUP BY company

ORDER BY company;
CompanyA Product 7 14.99
CompanyA Product 3 45.95
CompanyA Product 4 12.00
CompanyA Total 72.94
CompanyB Product 3 45.95
CompanyB Total 45.95
CompanyC Product 7 14.99
CompanyC Product 3 45.95
CompanyC Total 60.94

roxe77
دوشنبه 24 مهر 1391, 22:29 عصر
کسی نمیتونه کمکم کنه ؟!!!!!!!!!! لطفاااااااااااا

veniz2008
دوشنبه 24 مهر 1391, 23:02 عصر
بیا عزیز اینو استفاده کن ببین کارت رو راه میندازه. فقط تا جایی که بنده اطلاع دارم زمانی میشه union رو بکار برد که ستون هات همه از یه جنس ( از یه نوع) باشن. واسه همین معادل id در جدول اولت یه متغیر row@ از نوع int تعریف کردم.

declare @mm nvarchar(7)
declare @row int
set @mm = 'total :'
set @row = 1
select ID,name,price,size,Lox from Tblname union all
select @row as Row, @mm as Total,SUM(TypeExamID) as size,
SUM(GhestID) as price,SUM(YearExam) as Lox from TblGhest