PDA

View Full Version : سوال: کمک در ساختن این View



kami_63
یک شنبه 22 فروردین 1389, 19:56 عصر
با سلام خدمت اساتید محترم
یه سوال داشتم که امیدوارم کمکم کنید
چطور می تونم این View رو بسازم می خوام از جدول فروش بخونه که این ماه از هر گروه محصول چه تعداد فروش کرده و بعد بتونم این View رو بصورت چارت نشون بدم .
ممنون می شم کمک کنید

محمد سلیم آبادی
یک شنبه 22 فروردین 1389, 21:14 عصر
این View رو بصورت چارت نشون بدم .

سلام،
می تونم بپرسم منظورتون از استفاده از "چارت" چیه؟ می تونین یک مثال بزنید از این چارت؟

kami_63
دوشنبه 23 فروردین 1389, 00:11 صبح
سلام،
می تونم بپرسم منظورتون از استفاده از "چارت" چیه؟ می تونین یک مثال بزنید از این چارت؟
آقا حالا چارت رو بیخیال (منظورم چارت-نمودار تو vb نشون بدم) این view رو چطوری درست کنم. ممنون

محمد سلیم آبادی
دوشنبه 23 فروردین 1389, 00:20 صبح
CREATE VIEW my_view AS
SELECT Product, COUNT(*)
FROM Sales
WHERE [month]= DATEPART(MONTH, GETDATE())
GROUP BY Product

kami_63
دوشنبه 23 فروردین 1389, 17:42 عصر
CREATE VIEW my_view AS
SELECT Product, COUNT(*)
FROM Sales
WHERE [month]= DATEPART(MONTH, GETDATE())
GROUP BY Product

ممنون از جوابت حالا برم تست کنم ببینم میتونم ره جواب برسونم
mamnon az javabet hala beram test konam bebinam mitonam be javab beresam

kami_63
سه شنبه 24 فروردین 1389, 00:09 صبح
ممنون از اینکه جواب دادین
ولی چیزی که من میخوام نشد
میخوام وقچیزی مثل این بشه





گروه1 گروه 2 گروه n
ماه1 تعداد تعداد تعداد
ماه2 تعداد تعداد تعداد
ماهn تعداد تعداد تعداد


خواهشنا کمک کنید نیاز دارم

Rejnev
سه شنبه 24 فروردین 1389, 00:39 صبح
جواب پست شماره یک(پست خودتون) در پست شماره دو موجوده.
پست 6 یک مسئله جدیده.
حالا جواب شماره 6:



گروه 1
گروه 2
گروه n
ماه 1
تعداد
تعداد
تعداد
ماه 2
تعداد
تعداد
تعداد
ماه n
تعداد
تعداد
تعداد
فکر میکنم میخواستین همچین شکلی بکشید:




________________Month1_______Month2______________
group1 100 200 ...
Group2 400 800 ...
...





select
groups,
count((select code from sale where month=1)) as [month1],
count((select code from sale where month=2)) as [month2],
count((select code from sale where month=3)) as [month3],
...
from sale
group by groups

Rejnev
سه شنبه 24 فروردین 1389, 00:43 صبح
ممنون از اینکه جواب دادین
ولی چیزی که من میخوام نشد
میخوام وقچیزی مثل این بشه



گروه1 گروه 2 گروه n
ماه1 تعداد تعداد تعداد
ماه2 تعداد تعداد تعداد
ماهn تعداد تعداد تعداد


خواهشنا کمک کنید نیاز دارم
این که بدتر شد!
آخه باید تعداد ستونها در select مشخص و محدود باشه و ذکر بشه.
من در پست قبلیم ماه رو به عنوان ستونها گرفتم چون 12 تا بیشتر نیستن
ولی گروه میتونه تا بینهایت بره و قابل تغییره.

محمد سلیم آبادی
سه شنبه 24 فروردین 1389, 00:49 صبح
جواب پست شماره یک(پست خودتون) در پست شماره دو موجوده.
پست 6 یک مسئله جدیده.
حالا جواب شماره 6:

فکر میکنم میخواستین همچین شکلی بکشید:




________________Month1_______Month2______________
group1 100 200 ...
Group2 400 800 ...
...






select

groups,
count((select code from sale where month=1)) as [month1],
count((select code from sale where month=2)) as [month2],
count((select code from sale where month=3)) as [month3],
...
from sale
group by groups






مطمئن هستی این کوئری که نوشتین اجرا میشه؟

Rejnev
سه شنبه 24 فروردین 1389, 01:40 صبح
select
groups,
(select count(*) from sale where month=1) as [month1],
(select count(*) from sale where month=2) as [month2],
(select count(*) from sale where month=3) as [month3],
...
from sale


اصلاح شد.

محمد سلیم آبادی
سه شنبه 24 فروردین 1389, 01:45 صبح
بازم اصلاح نشد.
این نسخه ی اصلاح شده است:



SELECT group_id,
month1 = (select count(*) from sales as s1 where s1.group_id = s2.group_id and month =1),
month2 = (select count(*) from sales as s1 where s1.group_id =s2.group_id and month = 2)
, ....
from sales as s2
group by group_id

Rejnev
سه شنبه 24 فروردین 1389, 09:26 صبح
بازم اصلاح نشد.
این نسخه ی اصلاح شده است:



SELECT group_id,
month1 = (select count(*) from sales as s1 where s1.group_id = s2.group_id and month =1),
month2 = (select count(*) from sales as s1 where s1.group_id =s2.group_id and month = 2)
, ....
from sales as s2
group by group_id

group by نیازی نیست. چون از توابع تجمعی در select اصلی استفاده نشده.

محمد سلیم آبادی
سه شنبه 24 فروردین 1389, 12:37 عصر
group by نیازی نیست. چون از توابع تجمعی در select اصلی استفاده نشده.

مگه همیشه باید توابع تجمعی داشته باشیم تا group by کنیم؟
من جدول sales رو جدولی فرض کردم که هر برای هر محصولی می تونه چندین فروش داشته باشه. پس برای اینکه آمار هر محصول(یا گروه) تنها یکبار نمایش داده باشه مجبوریم گروه بندی انجام بدیم.

البته حتما بایستی جدول دیگری وجود داشته باشه که لیست محصولات در آن قرار گرفته باشه که با جدول sales (جدول بیرونی کوئری) تعویض بشه.

راجب این موضوع یک مقاله نوشتم که می شه ازش استفاده کرد:

http://www.30sharp.com/ShowArticle.aspx?nid=13&did=207&AuthorID=11

kami_63
چهارشنبه 25 فروردین 1389, 17:39 عصر
دوستان عزیز هر چند که من نتونستم به جوابی که می خواستم برسم ولی ممنون که جواب دادین