ورود

View Full Version : ایجاد کوئری مقایسه ای بین ماههای انتخابی



jafarpalideh
سه شنبه 01 اردیبهشت 1394, 11:29 صبح
با سلام به همه .
من یه تیبل دارم که توش نام دستگاه و تولیداتم رو به ترتیب تاریخ وارد کردم .
حالا میخوام یه گزارش مقایسه ای بدم که دستگاه من تویه ماه اول و دوم و سوم و ... چقدر تولید کرده یعنی یه کوئری میخوام که بهم آمار مقایسه ای بده تویه یه گزارش.
فایل رو ضمیمه کردم .
ویا یه کوئری دیگه اینکه من از یک محصول تویه ماههای مختلف چقدر تولید داشتم و مقایسه ش با ماههای قبل (بدون در نظر گرفتن نام دستگاه)

golbafan
سه شنبه 01 اردیبهشت 1394, 11:53 صبح
سلام
من فایل شما رو ندیدم ولی فرض کردم جدول شما اینطوری باشه:

محصول - تاریخ تولید
الف - 2015-01-01
ب - 2015-01-13
الف - 2015-01-16
ب - 2015-01-20
الف - 2015-02-24


حالا کوئری شما برای محصولات:

SELECT MONTH(date) AS mount, Count(product)FROM table1
GROUP BY MONTH(date),product

حالا اگر بخواهید فقط گزارش یک محصول رو ببینید باید اینطوری بشه:

SELECT MONTH(date) AS mount, Count(product)FROM table1
WHERE product="A"
GROUP BY MONTH(date),product

golbafan
سه شنبه 01 اردیبهشت 1394, 12:14 عصر
فایل شما رو براتون اصلاح کرده و کوئری رو گزاشتم توش:

jafarpalideh
سه شنبه 01 اردیبهشت 1394, 14:07 عصر
با تشکر از ظما دوست عزیز .
من خواسته ی خودم رو تویه یه عکس گذاشتم و اون مد نظر منه

jafarpalideh
پنج شنبه 03 اردیبهشت 1394, 06:30 صبح
دوستان کسی نبود سوال بنده رو پاسخ بده ؟

jafarpalideh
جمعه 04 اردیبهشت 1394, 07:23 صبح
دوستان من سوالم رو طور دیگه ای مطرح میکنم .
فرض کنیم که ما در طول سال داریم یک محصول رو هر تولید میکنیم . من میخوام که یه آمار مقایسه ای از تولید اون محصول رو در ماههای فروردین و اردیبهشت و خرداد و و و به دست بیارم .
فرض دیگه اینکه من فقط سه تا فیلد دارم .
1- Date (این فیلد از نوع TEXT هست با این فرمت 94/01/01)
2- Product (مثلا کاپ 300 گرمی)
3- Quantity

حالا خواسته ی من آمار مقایسه ای تولید در طول سال در هر ماه

khokhan
جمعه 04 اردیبهشت 1394, 11:30 صبح
دوستان من سوالم رو طور دیگه ای مطرح میکنم .
فرض کنیم که ما در طول سال داریم یک محصول رو هر تولید میکنیم . من میخوام که یه آمار مقایسه ای از تولید اون محصول رو در ماههای فروردین و اردیبهشت و خرداد و و و به دست بیارم .
فرض دیگه اینکه من فقط سه تا فیلد دارم .
1- Date (این فیلد از نوع TEXT هست با این فرمت 94/01/01)
2- Product (مثلا کاپ 300 گرمی)
3- Quantity

حالا خواسته ی من آمار مقایسه ای تولید در طول سال در هر ماه
اگه سمت برنامه می خوای این کار رو بکنی بایستی کوئری رو به صورت Pivot بنویسی
یه چیزی مثل این چیزی که توی این لینک (http://stackoverflow.com/questions/11379784/how-to-pivot-a-normal-sql-query-with-dynamic-columns) هست

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

alireza_s_84
جمعه 04 اردیبهشت 1394, 12:46 عصر
با سلام به همه .
من یه تیبل دارم که توش نام دستگاه و تولیداتم رو به ترتیب تاریخ وارد کردم .
حالا میخوام یه گزارش مقایسه ای بدم که دستگاه من تویه ماه اول و دوم و سوم و ... چقدر تولید کرده یعنی یه کوئری میخوام که بهم آمار مقایسه ای بده تویه یه گزارش.
فایل رو ضمیمه کردم .
ویا یه کوئری دیگه اینکه من از یک محصول تویه ماههای مختلف چقدر تولید داشتم و مقایسه ش با ماههای قبل (بدون در نظر گرفتن نام دستگاه)


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

jafarpalideh
یک شنبه 06 اردیبهشت 1394, 15:59 عصر
دوست من ، منم به خاطر همین گفتم که کاری میشه کرد یا نه .
لااقل اگه بشه دو ماه رو هم با هم مقایسه کرد واسم کافیه .