PDA

View Full Version : سوال: تهيه گزارش آمار ساليانه



arman2000
یک شنبه 21 آذر 1389, 22:49 عصر
سلام
پيشنهادتون براي ساخت گزارش آمار ساليانه، چيزي مثل تصوير زير از بانک اطلاعاتي پيوست چيه؟
(آمار تعداد نمونه ارسالي از شهرها، براي انجام تستهاي مختلف)

63518
http://barnamenevis.org/images/misc/pencil.png

arman2000
دوشنبه 22 آذر 1389, 21:52 عصر
ممنوم مي شم راهنمايي بفرمائيد.

bita_ziba77
سه شنبه 23 آذر 1389, 14:03 عصر
با سلام
شما بهتر است از كوئري Crosstab استفاده نماييد.

با تشكر

arman2000
چهارشنبه 24 آذر 1389, 22:13 عصر
امکان داره یه نمونه بذارید؟ ممنون می شم

arman2000
یک شنبه 28 آذر 1389, 10:38 صبح
سلام
بزرگوار جمع رديف (سالانه هر شهر: عمودي آخر) بدست مياد ولي جمع ستوني (تمام شهرها در يك ماه: رديف افقي آخري) چطور مي شه اضافه كرد؟

arman2000
سه شنبه 30 آذر 1389, 11:06 صبح
ممنون مي شم راهنمايي بفرمائيد.

arman2000
شنبه 04 دی 1389, 10:05 صبح
سلام
منتظر راهنمايي شما هستم

dadsara
دوشنبه 06 دی 1389, 17:55 عصر
سلام
گزارشهای کراس نمونه مورد نظر جنابعالی را تامین می کند نمونه های جالبی در همین سایت موجود می باشد

fazl11
دوشنبه 06 دی 1389, 21:03 عصر
دوست عزيز همونطور که دوستان فرمودند شما از CrossTab Query استفاده کن البته توي رديفات از شهر و ماه استفاده کن و در ستونهات از نوع نمونه ارسالي شهرها بذار يا نوع فروش يه جستجو بزن حتما پيدا مي کني

arman2000
چهارشنبه 08 دی 1389, 10:15 صبح
سلام
سرچ كردم ولي هر دو رديف (افقي و عمودي) نبود.

amirzazadeh
چهارشنبه 08 دی 1389, 13:29 عصر
سلام
لطفا گزارش كراس تب رو ببينيد:
.....................
موفق باشيد

arman2000
شنبه 11 دی 1389, 09:03 صبح
سلام
ممنونم از نمونه پيشنهادي شما
بزرگوار جمع رديف (سالانه هر شهر: عمودي آخر) بدست مياد ولي جمع ستوني (تمام شهرها در يك ماه: رديف افقي آخري) چطور مي شه اضافه كرد؟

payman_xxp
شنبه 11 دی 1389, 14:37 عصر
سلام
دوست عزیز با داشتن کوئری مورد نظر که بتونه اعداد ارقام شمارو حساب بکنه کارشما قابل انجام هستش.
بقیه کار میشه طراحی فرم گزارشی که دلخواه شماست.(قراردادن فیلد sum جهت جمع عمودی)
امیدوارم کوئری مورد نظر همین باشه، طراحی گزارش باشما.
موفق باشید

arman2000
جمعه 17 دی 1389, 02:16 صبح
دوست من سلام. ممنونم از راهنمایی شما

من تاريخ رو به صورت عدد وارد مي کنم مثل (17/10/1389)، چطور مي تونم به صورت "ماه" يعني فروردين و ... اين کوئري رو درست کنم؟
با شرط iif مي شه يه فيلد گذاشت که اين تبديل رو انجام بده ولي براي کوئري که نمي شه از اون فيلد استفاده کرد، اينو چکار کنم؟ چون کوئري، سرستون رو به صورت هر يک روز نشون مي ده نه يک ماه

dadsara
شنبه 18 دی 1389, 08:00 صبح
سلام
منبع داده کوئری را به شکل زیر تغییر دهید

TRANSFORM Sum([test1]+[test2]+[test3]+[test4]+[test5]+[test6]) AS Expr1
SELECT Table.address, Sum([test1]+[test2]+[test3]+[test4]+[test5]+[test6]) AS Expr2
FROM [Table]
GROUP BY Table.address
PIVOT Mid([date],6,2);

arman2000
یک شنبه 19 دی 1389, 21:57 عصر
سلام دوست من
ممنونم از راهنمایی شما. بزرگوار اگه تاریخ رکوردها بیشتر از یکی در ماه باشه، فقط اولی رو محاسبه می کنه. بعدی ها رو شامل نمی شه. مثلا اگه سه تا رکورد شیراز، یک تاریخ ثبت داشته باشند (1389/02/20) دوتای آخری در نظر گرفته نمی شند. چرا؟

dadsara
دوشنبه 20 دی 1389, 08:02 صبح
سلام
اگر گزارش را براساس آخرین جواب تغییر دهید درست عمل می کند

arman2000
دوشنبه 20 دی 1389, 20:18 عصر
سلام دوست من
منظورتون اینه که یه گزارش بر مبنای کوئری با دستوری که دادید بسازم؟ این کار رو کردم ولی تغییر نکرد.

payman_xxp
چهارشنبه 22 دی 1389, 16:50 عصر
سلام دوست من
منظورتون اینه که یه گزارش بر مبنای کوئری با دستوری که دادید بسازم؟ این کار رو کردم ولی تغییر نکرد.
سلام
با این کوئری دیگه نام ماهها هم نمایش داده میشه.
با این اوصاف دیگه ساختن گزارش خیلی راحتتر میشه.
موفق باشید.

arman2000
چهارشنبه 22 دی 1389, 21:05 عصر
سلام دوست من ممنونم، بسيار عالي بود احسنت :تشویق::تشویق::تشویق::تشویق:
بزرگوار اگه بخوام فقط تعداد رکودهاي مربوط به يک شهر، در جمع هر ماه آورده بشه (نه جمع تستها) چي؟ منظورم اينه که در اين نمونه که لطف کرديد گذاشتيد، در ارديبهشت، 3 رکورد مربوط به شيراز هست، نتيجه کوئري اين بشه که در ارديبهشت، جلوي شهر شيراز، عدد 3 قرار بگيره.

باز هم تشکر مي کنم. لذت بردم

arman2000
شنبه 25 دی 1389, 10:05 صبح
ممنونم مي شم راهنمائي بفرمائيد.

payman_xxp
شنبه 25 دی 1389, 15:38 عصر
ممنونم مي شم راهنمائي بفرمائيد.

سلام
آرمان جان خوشحالم که داری به چیزی که میخوای نزدیک میشی...م. :چشمک: تشکر کردن :تشویق:
راجع به تغییرات جدید یه کم توضیح بده
آیا به ریز تستها دیگه نیازی نیست فقط تعداد روزهای تست هرماه نیازه!؟
اگه فقط تعداد روزهای تست مورد نظره اینو ببین..

درمورده گزارشگیری هم راستشو بخوای متوجه منظورت نشدم.! :متفکر:

arman2000
شنبه 25 دی 1389, 22:53 عصر
سلام دوست خوب و عزیز من. عالی بود :تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق::تشویق:
بسیار بسیار از راهنمایی های دقیق و بیان مودبانه شما سپاسگزارم
دقیقا همون چیزی بود که می خواستم، که با پاسخ های زیبای شما به نتیجه رسیدم. لذت بردم. واقعا ممنونم :قلب:

بزرگوار با توجه به اينكه مثلا Test3 براي همه ركوردها انجام نمي شه اگه بخوام فقط اين ركورها رو آمارگيري كنيم (ركوردهايي كه Test3 اونها، مقدار داره)، كوئري چه تغييري مي كنه؟

با آرزوی موفقیت شما
امیدوارم همیشه شاد و سلامت باشید
باز هم صمیمانه تشکر می کنم :بوس:

payman_xxp
یک شنبه 26 دی 1389, 12:02 عصر
سلام دوست من
اگه منظورتون واکشی اطلاعات از جدول اصلی هستش کوئری اینه:




SELECT *
FROM [Table]
where test3 <> 0

arman2000
یک شنبه 26 دی 1389, 12:32 عصر
سلام دوست من
منظورم اضافه كردن اين شرط (ركوردهايي كه Test3 اونها، مقدار داره) در همون كوئري نمونه اي كه گذاشتيد هست:
TRANSFORM count(address) AS Expr1
SELECT Table.address, count(address)
FROM [Table] LEFT JOIN Tmah ON Mid(Table.date,6,2)=Tmah.mahNum
GROUP BY Table.address
PIVOT Tmah.mahName;

payman_xxp
یک شنبه 26 دی 1389, 13:03 عصر
آهان
کافیه سطر شرط where در پست قبلی رو بعداز سطر from در کوئری خودتون وارد کنید.
موفق باشید

arman2000
یک شنبه 26 دی 1389, 13:19 عصر
دوست من با چه زبوني از شما تشكر كنم :بوس::بوس::بوس:
بزرگوار از اينكه سريع جواب داديد هم ممنونم

شاد باشيد

arman2000
سه شنبه 28 دی 1389, 12:43 عصر
سلام دوست من
1- بزرگوار اگه بخوام در نمونه اي كه لطف كرديد گذاشتيد (tstNew.rar)، جاهايي كه جواب نداره، عدد صفر نمايش بده (الان جاي خالي نشون مي ده) چه تغييري در كد نياز هست؟

2- چطوري مي شه شماره رديف ها رو كنار نام شهرها گذاشت؟ (شماره گذاري تعداد ركوردهاي نمايش داده شده در نمونه tstNew.rar)

arman2000
پنج شنبه 30 دی 1389, 11:44 صبح
ممنون مي شم راهنمائي بفرمائيد.

reza850101
شنبه 02 بهمن 1389, 16:10 عصر
:
دوستان من سوالي داشتم ممكنه راهنمايي كنيد

اگر بخواهيم گزارشي داشته باشيم فاصله دو تاريخ را مثلا 890203 تا 890505 را بدين صورت جواب بدهد چكار بايد كنيم (لازم است توضيح بدهم كه دو فيلد (تكس) دارم كه حاوي تاريخ ميباشد)
: از تا
3ارديبهشت - خرداد - تير - 5مرداد

payman_xxp
یک شنبه 03 بهمن 1389, 08:06 صبح
سلام دوست من
1- بزرگوار اگه بخوام در نمونه اي كه لطف كرديد گذاشتيد (tstNew.rar)، جاهايي كه جواب نداره، عدد صفر نمايش بده (الان جاي خالي نشون مي ده) چه تغييري در كد نياز هست؟

2- چطوري مي شه شماره رديف ها رو كنار نام شهرها گذاشت؟ (شماره گذاري تعداد ركوردهاي نمايش داده شده در نمونه tstNew.rar)

سلام دوست من
چند روزی دور از نت بودم.
در اولین فرصت چشم.
گزینه 1 قابل انجامه ولی 2...!؟ برای کوئری اینکار لازمه!؟ چرا نمیبری ریپورت ایجاد کنی؟

payman_xxp
یک شنبه 03 بهمن 1389, 08:25 صبح
سلام دوست من
این کوئزی برای سوال 1 هستش



TRANSFORM IIf(Count(Table.address) Is Null,'0',Count(Table.address)) AS Expr1
SELECT Table.address, count(address)
FROM [Table] LEFT JOIN Tmah ON Mid(Table.date,6,2)=Tmah.mahNum
GROUP BY Table.address
PIVOT Tmah.mahName;

arman2000
یک شنبه 03 بهمن 1389, 12:35 عصر
سلام دوست من
ممنونم
دوست عزيزم. من هم براي ريپورت مي خوام. منظورتون رو متوجه نشدم از
چرا نمیبری ریپورت ایجاد کنی؟

3- بزرگوار چطور مي شه ترتيب شهرها رو تغيير داد؟ (از دستور Siwch اگه بشه توي اون كوئري كه لطف كرديد گذاشتيد، كدام قسمتش قرار بدم؟)

payman_xxp
یک شنبه 03 بهمن 1389, 14:12 عصر
چه ترتیبی مدنظر هستش عزیز.؟

arman2000
یک شنبه 03 بهمن 1389, 16:53 عصر
سلام دوست خوب من

مثلا در ابتدا، به ترتیب حروف الفباباشه. همچنین در منوی شهرها گزینه ای به نام "متفرقه" دارم که می خوام آخرین گزینه (بعد از آخرین شهر) نمایش داده بشه.
چون تعداد رکوردها زیاد هست نمی تونم ID منو رو تغییر بدم تا ترتیب، از اونجا (ID جدول منو) تغییر کنه.


بزرگوار در مورد سوال دوم: "شماره گذاري تعداد ركوردهاي نمايش داده شده " ممنون می شم بیشتر راهنمایی بفرمائید. :قلب:

arman2000
یک شنبه 03 بهمن 1389, 19:31 عصر
سوال چهارم: در نمونه (tstNew.rar) فقط زمانی ماه ها دیده می شند که حداقل یک رکورد در اون ماه ثبت شده باشه، حتی نام ماه هم در سرستون دیده نمی شه که عدد صفر در مقابل نام شهرها نمایش داده بشه. پیشنهادتون برای دیده شدن نام ماه ها، زمانی که رکودی ندارند چیه؟

payman_xxp
دوشنبه 04 بهمن 1389, 08:04 صبح
سلام دوست من
جواب سوالها بترتیب شماره نیست، بترتیب سواد منه :لبخند:



سوال چهارم: در نمونه (tstNew.rar) فقط زمانی ماه ها دیده می شند که حداقل یک رکورد در اون ماه ثبت شده باشه، حتی نام ماه هم در سرستون دیده نمی شه که عدد صفر در مقابل نام شهرها نمایش داده بشه. پیشنهادتون برای دیده شدن نام ماه ها، زمانی که رکودی ندارند چیه؟

کار سختی نیست فقط کافیه شرط join جدول اصلی با جدول ماه رو از چپ به راست عوض کنی( حتما و حتما که به دستورات SQL تسلط داری دوست من)

و اما این مورد


مثلا در ابتدا، به ترتیب حروف الفباباشه. همچنین در منوی شهرها گزینه ای به نام "متفرقه" دارم که می خوام آخرین گزینه (بعد از آخرین شهر) نمایش داده بشه.
چون تعداد رکوردها زیاد هست نمی تونم ID منو رو تغییر بدم تا ترتیب، از اونجا (ID جدول منو) تغییر کنه.

مثلا در ابتدا...!؟ یعنی ترتیب دیگه ای هم مدنظر هست؟ و راجع به شهر متفرقه عرض شود که...
میتونی مثل ماهها یه جدول جدا براشون درست کنی و برای هر شهر یک شماره (کلید اصلی) که نشان دهنده ترتیب هستش قراربدی و در کوئری با استفاده از join ترتیب شهر را طوری داشته باشی که برنامه نویس یا کاربر میخواد.
البته (تخصصی تر) بخاطر جلوگیری از افزونگی اطلاعات باید از کلید اصلی جدول شهرها بجای نام اونها در جدول ثبت اطلاعات استفاده کنید.
راستی گفتی چندتا شهر داری؟

arman2000
دوشنبه 04 بهمن 1389, 10:40 صبح
سلام دوست خوب من
بسیار سپاسگذارم بابت راهنمائی های کامل شما :تشویق::تشویق::تشویق:
در مورد سوال اول تشکر ویژه دارم برای کد پیشنهادیتون در 32#. عزیز چطور می شه برای ماههایی که هنوز نیامده (مثل اسفند)، خالی یا خط تیره قرار بگیره ولی برای ماهای گذشته اگر رکورد نداشتند، صفر نمایش داده بشه؟

در مورد سوال دوم: "شماره گذاري تعداد ركوردهاي نمايش داده شده" هم که بیشتر راهنمائی نکردید. منتظریم :چشمک:

سوال سوم هم که ترتيب شهرها بود،
راستی گفتی چندتا شهر داری؟ 30 تا شهر دارم.

ترتیب دیگه ای هم مدنظر هست؟ منظورم این بود که اگه به ترتیب الفبا باشه گزینه متفرقه آخر قرار نمی گیره (چند تا مانده به آخر می شه که من لازم دارم حتما آخرین آیتم قرار بگیره و همچنین جالب هم نیست بین بقیه شهرها باشه)

سوال چهارم در مورد نمایش نام ماههای بدون رکورد بود. منظورتنون:قلب: تبدیل LEFT JOIN به RIGHT JOIN بود دیگه؟ :قلب::قلب:

payman_xxp
دوشنبه 04 بهمن 1389, 11:31 صبح
سلام دوست من
یه نگاه اجمالی به سوالات میندازیم ببینیم چی به چیه:

سوال اول : عوض کردی سوالتو.نه!؟
بابت قسمت اضافه شده باید سیستم تاریخ زنی داشته باشی که بتونی تاریخ روز بگیری ، تازه بعدش کوئری تشخیص بده کدوم ماه سال رد شده و یا کدوم نرسیده (خلاصه باید تاریخ روز شمسی داشته باشی).

سوال دوم : "شماره گذاري تعداد ركوردهاي نمايش داده شده"
کاش مثل پست اول نمونه میزاشتی که چی مدنظر هستش.

سوال سوم : "ترتيب شهرها"
روی توضیحی که پست قبلی دادم کار کن مسئله ای بود حلش میکنیم.

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

موفق باشید.

arman2000
دوشنبه 04 بهمن 1389, 11:56 صبح
دوست عزیزم خیلی مخلصیم
آقا بسیار ممنونم از لطف شما :بوس::بوس::بوس:

بزرگوار منظورم از "شماره گذاري تعداد ركوردهاي نمايش داده شده" اینه که توی گزارشگیری بتونم شماره ردیف اضافه کنم. به نظر شما این کار رو از کوئری انجام بدم یا از ریپورت بهتره؟ برای انجام این کار چه کدی لازم دارم؟ می خوام مثل ترتیب زیر نمایش داده بشه (اعداد قرمز رنگ):
1- شیراز 0 2 4 0
2- کرمان 1 2 5 0
3- یزد 0 1 2 1

و سوال پنجم: چطور مي شه گزارش اين كوئري رو به صورت يك در ميان سايه روشن كرد؟

payman_xxp
دوشنبه 04 بهمن 1389, 14:54 عصر
دوست عزیزم خیلی مخلصیم
آقا بسیار ممنونم از لطف شما :بوس::بوس::بوس:

بزرگوار منظورم از "شماره گذاري تعداد ركوردهاي نمايش داده شده" اینه که توی گزارشگیری بتونم شماره ردیف اضافه کنم. به نظر شما این کار رو از کوئری انجام بدم یا از ریپورت بهتره؟ برای انجام این کار چه کدی لازم دارم؟ می خوام مثل ترتیب زیر نمایش داده بشه (اعداد قرمز رنگ):
1- شیراز 0 2 4 0
2- کرمان 1 2 5 0
3- یزد 0 1 2 1

و سوال پنجم: چطور مي شه گزارش اين كوئري رو به صورت يك در ميان سايه روشن كرد؟

سلام دوست عزیزم
حدسم درست بود، بله جواب شما برای اینکار( هم سوال 2و هم5) بهترین کار استفاده از ریپورت هستش. در طراحی ریپورت هم میشه ستون ردیف ایجاد کرد هم میشه یک در میون سایه روشن با هر رنگی که دوست داری ایجاد کرد.
یه همچین شکلی باید بشه خروجی ریپورت

ریپورت ایجاد کن اگه نشد آپلود کن ببینیم مسئله چیه...
موفق باشید

arman2000
دوشنبه 04 بهمن 1389, 18:12 عصر
دوست خوبم محبت کردید

در مورد "ترتيب شهرها": از اول برای شهرها جدول درست کرده بودم و متاسفانه ترتیب اونا اون موقع مهم نبود و رعایت نکردم و الان لازم شده که اگه شماره (کلید اصلی) اونها رو عوض کنم با حدود دوهزار رکورد، امکان تغییرشون بر اساس ترتیب جدید، ممکن نیست. فکر کنم دستورSwitch بی ربط با این تغییر ترتیب نباشه. درسته؟

Switch(city="kerman", 1, city="shiraz", 2 )

arman2000
دوشنبه 04 بهمن 1389, 23:28 عصر
عزیزم شماره ردیف در ریپورت چطور اضافه می شه؟ tstNew3.rar‏ (http://barnamenevis.org/attachment.php?attachmentid=65551&d=1295955882)

payman_xxp
سه شنبه 05 بهمن 1389, 17:59 عصر
عزیزم شماره ردیف در ریپورت چطور اضافه می شه؟ tstNew3.rar‏ (http://barnamenevis.org/attachment.php?attachmentid=65551&d=1295955882)
سلام دوست من
با اضافه کردن یه سرستون( ردیف) و یه تکس باکس با تنظیمات شکل زیر اینکار انجام میشه.
موفق باشید.

payman_xxp
سه شنبه 05 بهمن 1389, 18:18 عصر
راستی راجع به ترتیب شهرها و ....
عرض شود که ماهی و هروقت از آب بگیری تازست، تا تعداد رکوردهات میلیونی نشده( که دراین صورت کوئری تغییرات 2یا 3 دقیقه طول میکشه) اینکارو انجام بده تا خیالت راهت بشه.
در ضمن بقول برنامه نویسا یه کلک مرغابی هم میتونی بزنی.
واما کلک: :چشمک:
توی تیبل شهرهات( یادمه گفتی 30تا بیشتر نیست) اول نام تمام شهرها یه کلمه "شهر" اضافه کن بجز "متفرقه".
یا
توی تیبل شهرهات( یادمه گفتی 30تا بیشتر نیست) اول نام تمام شهرها یه "[space]" اضافه کن بجز "متفرقه".
اینجوری هیچ کد نویسی برای آپدیت تیبلهات نیاز نداری، چون درهر دو صورت "متفرقه" آخر لیست هستش(مرتبسازی حروف الفبا).
موفق باشید.

arman2000
چهارشنبه 06 بهمن 1389, 00:49 صبح
دوست عزیز و استاد بزرگوارم بسیار استفاده کردم از راهنمایی های کامل و گویای شما خیلی لطف کردید مخصوصا جواب دادن سریع تان موفق و پیروز باشید :قلب::تشویق::بوس:

arman2000
پنج شنبه 26 اسفند 1389, 12:18 عصر
دوست من وقتي شرط زير رو ميذارم در رديف اول يك سري صفر اضافه مي شه كه نمي دونم دليلش چيه هيچ اسم شهري هم جلوش نيست
WHERE (((tbl1388.city)<>0))

payman_xxp
پنج شنبه 26 اسفند 1389, 22:45 عصر
سلام دوست من
برای یادآوری تاپیک رو مرور میکردم.
برنامه خوب پیش میره؟
نگفتید از چه روشی تیبل و کوئریهارو پیاده سازی کردید، کاش میگفتید یا نمونه میذاشتید ببینیم این سطر چیه... :متفکر:
بجای 0 از null استفاده کنید ببینید جواب میده؟
موفق باشید.

arman2000
شنبه 28 اسفند 1389, 11:29 صبح
دوست خوب من با راهنمائي هاي عالي شما مگه مي شه برنامه خوب پيش نره. :چشمک::لبخندساده: واقعا ممنونم. بزرگوار اون تغييراتي بود كه از شما راهنمائي خواستم، براي سال جديد توي يه ديتابيس ديگه اعمال كردم و يه لينك گذاشتم به سال 89 از بانك 90. چون نمونه هام از شماره يك دوباره شروع مي شه يه ديتابيس جديد اختصاص دادم هم براي احتياط و هم براي افزايش سرعت ولي چيزي كه محدود مي كنه جستجوهام هست كه نمي تونم دامنه تاريخ رو بيش تر از يك سال بدم. شبيه به اين مورد داشتيد؟ چكار كرديد؟

دوست عزيزم در مورد آمار ساليانه هم در كد زير اگه اين كد رو:

WHERE (((Table.address)<>0))

اضافه نكنم يه رديف صفر مثل تصوير پست قبلي اضافه مي كنه و اگر اين كد رو اضافه كنم براي ماه هاي آينده كه ركورد نداره خطا مي ده كه اگه اون ماه رو در گزارش حذف كنم خطا نمي ده. من مي ذاشتم وقتي كه ركورد در ماه جديد وارد شد اون وقت فيلد ماه جديد رو به گزارش اضافه مي كردم. فكر مي كنم تغييري توي كد لازم باشه. تا پيشنهاد شما چي باشه.



TRANSFORM IIf(Count(Table.address) Is Null,'0',Count(Table.address)) AS Expr1
SELECT Table.address, count(address)
FROM [Table] LEFT JOIN Tmah ON Mid(Table.date,6,2)=Tmah.mahNum
GROUP BY Table.address
PIVOT Tmah.mahName;



لطف شما رو فراموش نمي كنم :قلب: :قلب: :بوس:
پيشاپيش سال نوي شما مبارك

payman_xxp
سه شنبه 16 فروردین 1390, 18:00 عصر
سلام
سال نوی شما هم مبارک دوست من

براي سال جديد توي يه ديتابيس ديگه اعمال كردم و يه لينك گذاشتم به سال 89 از بانك 90. چون نمونه هام از شماره يك دوباره شروع مي شه يه ديتابيس جديد اختصاص دادم هم براي احتياط و هم براي افزايش سرعت ولي چيزي كه محدود مي كنه جستجوهام هست كه نمي تونم دامنه تاريخ رو بيش تر از يك سال بدم. شبيه به اين مورد داشتيد؟ چكار كرديد؟
جدا کردن دیتابیس سالهای مختلف این دردسرهارو هم داره، باید یه فکری واسش بکنی.
اگه با گزارش گیری سالهای قبل در سال جاری خیلی کار داری پیشنهاد میدم حتما دیتا یکی بشه( آسونترین راه)... راستی تعداد فیلدها به چندتا رسیده که یکی بودن دیتابیس سالهای مختلف سرعتو کم میکنه!!؟؟
در ضمن، اگه تیبل داده های سال قبل لینک هستن به دیتای سال جاری با کد نویسی میتونی بهشون دسترسی داشته باشی و گزارش گیری کنی.

در مورد قسمت دوم سوالتون:
مطمئنا برنامتون تا حالا خیلی فرق کرده، یه نمونه جدید میتونه خیلی کمک کنه که سریعتر این مشکلتون حل بشه.
موفق باشید.

arman2000
شنبه 20 فروردین 1390, 11:59 صبح
دوست عزيز من سلام
- تعداد فيلد ها هر سال حدود سه هزار تا مي رسه. مشكلي كه بوجود مي آد شروع شدن شماره ها از عدد يك براي هر سال هست كه مجبور شدم ديتابيس ها رو جدا كنم.
- تيبل ها هم به هم لينك نيستند.
- يه رديف صفر هم اضافه مي كنه كه در نمونه بهتر منظورم رو مي تونم برسونم.
- بزرگوار چطور مي شه همين يا يه گزارشي شبيه به اين رو بصورت درصد ساخت؟ مثلا تعداد نمونه هاي شيراز 20% كل نمونه هاي سال بوده و 10% نمونه هاي فروردين ماه.
51.rar‏ (http://barnamenevis.org/attachment.php?attachmentid=68473&d=1302336110)

arman2000
یک شنبه 21 فروردین 1390, 12:54 عصر
ممنون مي شم راهنمايي بفرمائيد.

arman2000
سه شنبه 23 فروردین 1390, 08:12 صبح
منتظر راهنمايي شما هستم.

payman_xxp
سه شنبه 23 فروردین 1390, 19:05 عصر
سلام دوست من
نمونه کوئری شما روی سیستم من خطای زبان ذخیره سازی میده...!!!:گیج:
همچنین وقتی ریپورت رو تغییر میدم اجازه ثبت به همون دلیل بالا رو نمیده...!!!:متفکر:
این سطر رو به تب data و قسمت filter ریپورتتون اضافه کنید:
Table.address <> null
اینجوری مشکل سطر با اطلاعات 0 حل میشه فکر کنم.

در مورد گزارش درصدی هم لطفا بگید چجوری میخواهید اطلاعات نمایش داده بشه، نوع نمایش خیلی مهمه(مثل پست اولتون توی همین تاپیک)
موفق باشید.

arman2000
چهارشنبه 24 فروردین 1390, 11:18 صبح
سلام دوست خوب من
1- كدي رو كه پيشنهاد داديد گذاشتم ولي همچنان صفرها برقرارند
2- گزارش درصدي چيزي شبيه به تصوير زير رو مي شه ساخت؟


68662

payman_xxp
پنج شنبه 25 فروردین 1390, 14:30 عصر
سلام دوست خوب من
1- كدي رو كه پيشنهاد داديد گذاشتم ولي همچنان صفرها برقرارند

سلام
من كه گذاشتم، شد...:چشمک:
اينم مدركش و عكسش
68723
موفق باشيد

payman_xxp
پنج شنبه 25 فروردین 1390, 15:06 عصر
مثلا تعداد نمونه هاي شيراز 20% كل نمونه هاي سال بوده و 10% نمونه هاي فروردين ماه.
...
2- گزارش درصدي چيزي شبيه به تصوير زير رو مي شه ساخت؟
68662
بالاخره كدومش مد نظر هست؟
مثال درصد سالانه هستش
عكس درصد ماهانه
حالا درصد ماهانه يا سالانه!!!؟؟؟

arman2000
پنج شنبه 25 فروردین 1390, 18:19 عصر
سلام بزرگوار
1- آره درست شد. من Filter On Load رو NO گذاشته بودم.
2- دوست من تصویر رو تصحیح کردم. ببخشید :چشمک:. برای یه دیتابیس دیگه هم می خواستم که اونجا درصد مواردی که مثلا مقدار تست شماره 2 یک شهر، بین 1 تا 4 باشه و ... (البته هم برای ماه و هم برای سال). برای همچین موردهایی می شه از کدهایی که در این نمونه می ذاریم برای اون هم استفاده کرد یا قصه اش جداست؟

68739تشکر ویژه بابت راهنمائی های عالی شما :قلب::قلب::تشویق::تشویق::بوس:: وس:

arman2000
شنبه 27 فروردین 1390, 22:05 عصر
دوست من ممنون می شم راهنمائی بفرمائید.

payman_xxp
یک شنبه 28 فروردین 1390, 07:48 صبح
سلام
جواب سوال دوم شما، همون جدولي كه كشيديد، همون روز3 شنبه حاضر بود.
جسارتا آپلود نكردم تا يه كم بيشتر روش كار كنيد.
خيلي خوبه كه سوال ميپرسيد، و خيلي خوبتر ميشه، اگر كه از كد نويسي نترسيد.
با توجه به كدهايي كه تا امروز با هم و دوستان عزيز ديگه كار كرديم، طراحي اين گزارش و خيلي گزارشهاي ديگه براي شما قابل انجامه.
جمع برنامه نويس و نظر شخصي بنده اينه كه سره نخ توسط دوستان داده بشه و خودمون بريم قرقره نخ رو تموم كنيم:بامزه:.
دوست من از كد نويسي نترسيد
موفق باشيد.

arman2000
یک شنبه 28 فروردین 1390, 16:03 عصر
سلام دوست خوب من
بزرگوار ممنونم از راهنمائی های عالی شما :تشویق::تشویق::تشویق:
عزیز به کوئری نمونه ای که ضمیمه کردم، شرط
WHERE (test1) Is Not Null رو اضافه کردم پیغام زیر رو می ده که در واقع چون برای همه ماهها، رکورد ندارم دلیل نمایش این پیغام هست. چطور می شه این مشکل رو حل کرد؟

68857

payman_xxp
دوشنبه 29 فروردین 1390, 18:30 عصر
سلام دوست خوب من
بزرگوار ممنونم از راهنمائی های عالی شما :تشویق::تشویق::تشویق:
عزیز به کوئری نمونه ای که ضمیمه کردم، شرط
WHERE (test1) Is Not Null رو اضافه کردم پیغام زیر رو می ده که در واقع چون برای همه ماهها، رکورد ندارم دلیل نمایش این پیغام هست. چطور می شه این مشکل رو حل کرد؟

68857
سلام
یه کوچولو دقت نکردی
این شرط رو باید موقع نمایش بذاری فقط، روی ریپورت فقط.
چرا؟
سوال خوبیه، چون ما در کوئری 3 کراس تب کردیم ماههای سال رو با تاریخ تستها، و لازم داریم که شهری باشه که در تمام تاریخها تست داشته باشه( که عملا شما در جدولتون ندارید)
بنابراین در کوئری ، ما نباید این شرط رو بذاریم، وگرنه ماههایی که تست نداریم در کوئری نمایش داده نمیشه و ریپورت هم نمیتونه اونهارو پیدا کنه و خطای پیدا نکردن یه ماه رو میده.
موفق باشید.

arman2000
دوشنبه 29 فروردین 1390, 23:04 عصر
سلام
عزیز در قسمت Filter ریپورت منظورتون هست؟ test1 Is Not Null رو در اون گذاشتم ولی پیغام داد.
در ضمن همونطوری که در تصویر پست 56 (فیلتر کردن ریپورت) گفته بودید، در قسمت Filter ریپورت، address Is Not Null هم هست.

payman_xxp
سه شنبه 30 فروردین 1390, 07:22 صبح
سلام
عزیز در قسمت Filter ریپورت منظورتون هست؟ test1 Is Not Null رو در اون گذاشتم ولی پیغام داد.
در ضمن همونطوری که در تصویر پست 60 (فیلتر کردن ریپورت) گفته بودید، در قسمت Filter ریپورت، address Is Not Null هم هست.
سلام
ببين اين كوئري شماست درسته:
TRANSFORM IIf(Count(Table.address) Is Null,'0',Count(Table.address)) AS Expr1
SELECT Table.address, count(address)
FROM [Table] RIGHT JOIN Tmah ON Mid(Table.date,6,2)=Tmah.mahNum
WHERE (test1) Is Not Null
GROUP BY Table.address
PIVOT Tmah.mahName;
سطر قرمز رنگ داره كوئري شما رو محدود ميكنه و اجازه نميده كه تمام ماهها در كوئري نمايش داده بشن، فيلتر كردن در كوئري اينجا جايز نيست به همون دليلي كه در پست قبلي گفتم.
فيلتر در قسمت Filter ریپورت فقط بايد انجام بشه، تا منظور شما حاصل بشه.
موفق باشيد.

arman2000
سه شنبه 30 فروردین 1390, 12:05 عصر
سلام دوست من
بزرگوار صحيح مي فرمائيد. در مورد كوئري كه مشكلي نيست.
1- منظور من هم همون فيلتر ريپورت بود چون همين كد (WHERE (test1) Is Not Null) رو در قسمت Filter ریپورت گذاشتم ولي جواب نداد. اونو با كد test1 Is Not Null عوض كردم باز هم نشد.

68917
2- در پست 56 همين تاپيك هم در قسمت فيلتر ريپورت، كد address Is Not Null رو براي حذف صفرهاي رديف اول پيشنهاد داده بوديد. اگه بخوايم شرطي رو اضافه كنيم به فيلتر (مثل شرط فوق: خالي نبودن فيلد test1) با كلمه And اين دو تا رو يكي كنم؟
68918

payman_xxp
سه شنبه 30 فروردین 1390, 21:17 عصر
سلام
بله کلمه ربط AND هستش.
ولی فکر میکنید جواب بگیرید...؟؟
test1 جزو فیلدهای کوئری شما هست؟ که حالا میخواهید اونو در ریپورت فیلتر کنید؟
موفق باشید.

arman2000
چهارشنبه 31 فروردین 1390, 11:42 صبح
سلام دوست من
شما مي فرمائيد كه: "فيلتر در قسمت Filter ریپورت فقط بايد انجام بشه" و "test1 جزو فیلدهای کوئری نيست که اونو در ریپورت فیلتر کنم" پس يا منظورتون رو از "Filter ریپورت" متوجه نمي شم (يعني منظور، Filter در تصوير پست 65 نيست)،:گیج: يا اول بايد در كوئري تغييري بدم بعد در ريپورت، فيلتر كنم. و يا... :گریه::گریه:

payman_xxp
پنج شنبه 01 اردیبهشت 1390, 09:47 صبح
سلام
اینا دو تا موضوع جدا هستن.
این عکسو ببین:
68971
اگر در کوئری فیلتر کنی دیگه بعضی از ماهها رو که در ریپورت بهشون نیاز دارى دیده نمیشن و کنارشون یه علامت سبز رنگ دیده میشه که میگه اطلاعاتی برای نمایش ندارن و در نتیجه خطای پست 61 رو میده.
این تمام.
موضوع بعدی
در پست 65 قسمت دوم گفتی:

(مثل شرط فوق: خالي نبودن فيلد test1) من یه قدم جلوتر رفتم و از شما سوال کردم:

ولی فکر میکنید جواب بگیرید...؟؟
test1 جزو فیلدهای کوئری شما هست؟ که حالا میخواهید اونو در ریپورت فیلتر کنید؟حالا جواب
بله، شما باید کوئری بنویسید که test1 باشه توش، جمعی، تفریقی، نمایشی چیزی روش انجام بدید====> در ریپورت فیلتر کنید.
:کف::افسرده::اشتباه:(کف کردم:چشمک:)
موفق باشید.

arman2000
یک شنبه 04 اردیبهشت 1390, 11:21 صبح
سلام
عزيز كد زير رو گذاشتم ولي هر شهر به تعدادي كه ركورد داره مي آد نه يكجا مثل دوبار شيراز تكرار مي شه:
69099

TRANSFORM IIf(Count(Table.test1) Is Null,'0',Count(Table.test1)) AS Expr2
SELECT Table.test1, count(test1), Table.address
FROM [Table] RIGHT JOIN Tmah ON Mid(Table.date,6,2)=Tmah.mahNum
GROUP BY Table.address, Table.test1
PIVOT Tmah.mahName;

http://barnamenevis.org/images/misc/pencil.png

payman_xxp
یک شنبه 04 اردیبهشت 1390, 14:32 عصر
سلام
عزيز كد زير رو گذاشتم ولي هر شهر به تعدادي كه ركورد داره مي آد نه يكجا مثل دوبار شيراز تكرار مي شه:
69099

TRANSFORM IIf(Count(Table.test1) Is Null,'0',Count(Table.test1)) AS Expr2
SELECT Table.test1, count(test1), Table.address
FROM [Table] RIGHT JOIN Tmah ON Mid(Table.date,6,2)=Tmah.mahNum
GROUP BY Table.address, Table.test1
PIVOT Tmah.mahName;

http://barnamenevis.org/images/misc/pencil.png
سلام
با اینکه از نتیجه کوئری سر در نیاوردم، ولی... تا اینجا، کدی نوشتی که به 1 دردی بخوره .
حالا چرا تعجب میکنی که تکراریه؟
کدی که نوشتید اینو میخواد و کوئری هم دستور شمارو اجرا میکنه

کد شما میگه گروپ بای کن شهری که شیرازه با تعداد تست1 در ماههای مختلف...
انتظار ندارید که تست1 با مقدار 0 و 4 با هم گروپ بای بشن؟
پس میشه دوتا شیراز، یکی با تست1 برابر 0 و یکی برابر 4

موفق باشید.

sajjad_kochekian
یک شنبه 11 اردیبهشت 1390, 23:23 عصر
من يك گزارش دارم كه شبيه اينه ولي به جاي ماه هاي سال بايد تعداد روزهاي بين تاريخ قرار بگيره.
و نكته اينجاست كه اگر تعداد ستون بيش از يك صفحه شد برود به صفحه بعد و به همين منوال ادامه پيدا مي كنه.
براي اين گزارش چه روشي ميشه استفاده كرد.