-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
دوست عزیزم خیلی مخلصیم
آقا بسیار ممنونم از لطف شما :بوس::بوس::بوس:
بزرگوار منظورم از "شماره گذاري تعداد ركوردهاي نمايش داده شده" اینه که توی گزارشگیری بتونم شماره ردیف اضافه کنم. به نظر شما این کار رو از کوئری انجام بدم یا از ریپورت بهتره؟ برای انجام این کار چه کدی لازم دارم؟ می خوام مثل ترتیب زیر نمایش داده بشه (اعداد قرمز رنگ):
1- شیراز 0 2 4 0
2- کرمان 1 2 5 0
3- یزد 0 1 2 1
و سوال پنجم: چطور مي شه گزارش اين كوئري رو به صورت يك در ميان سايه روشن كرد؟
سلام دوست عزیزم
حدسم درست بود، بله جواب شما برای اینکار( هم سوال 2و هم5) بهترین کار استفاده از ریپورت هستش. در طراحی ریپورت هم میشه ستون ردیف ایجاد کرد هم میشه یک در میون سایه روشن با هر رنگی که دوست داری ایجاد کرد.
یه همچین شکلی باید بشه خروجی ریپورت
ریپورت ایجاد کن اگه نشد آپلود کن ببینیم مسئله چیه...
موفق باشید
-
نقل قول: تهيه گزارش آمار ساليانه
دوست خوبم محبت کردید
در مورد "ترتيب شهرها": از اول برای شهرها جدول درست کرده بودم و متاسفانه ترتیب اونا اون موقع مهم نبود و رعایت نکردم و الان لازم شده که اگه شماره (کلید اصلی) اونها رو عوض کنم با حدود دوهزار رکورد، امکان تغییرشون بر اساس ترتیب جدید، ممکن نیست. فکر کنم دستورSwitch بی ربط با این تغییر ترتیب نباشه. درسته؟
Switch(city="kerman", 1, city="shiraz", 2 )
-
نقل قول: تهيه گزارش آمار ساليانه
عزیزم شماره ردیف در ریپورت چطور اضافه می شه؟ tstNew3.rar
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
سلام دوست من
با اضافه کردن یه سرستون( ردیف) و یه تکس باکس با تنظیمات شکل زیر اینکار انجام میشه.
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
راستی راجع به ترتیب شهرها و ....
عرض شود که ماهی و هروقت از آب بگیری تازست، تا تعداد رکوردهات میلیونی نشده( که دراین صورت کوئری تغییرات 2یا 3 دقیقه طول میکشه) اینکارو انجام بده تا خیالت راهت بشه.
در ضمن بقول برنامه نویسا یه کلک مرغابی هم میتونی بزنی.
واما کلک: :چشمک:
توی تیبل شهرهات( یادمه گفتی 30تا بیشتر نیست) اول نام تمام شهرها یه کلمه "شهر" اضافه کن بجز "متفرقه".
یا
توی تیبل شهرهات( یادمه گفتی 30تا بیشتر نیست) اول نام تمام شهرها یه "[space]" اضافه کن بجز "متفرقه".
اینجوری هیچ کد نویسی برای آپدیت تیبلهات نیاز نداری، چون درهر دو صورت "متفرقه" آخر لیست هستش(مرتبسازی حروف الفبا).
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
دوست عزیز و استاد بزرگوارم بسیار استفاده کردم از راهنمایی های کامل و گویای شما خیلی لطف کردید مخصوصا جواب دادن سریع تان موفق و پیروز باشید :قلب::تشویق::بوس:
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
دوست من وقتي شرط زير رو ميذارم در رديف اول يك سري صفر اضافه مي شه كه نمي دونم دليلش چيه هيچ اسم شهري هم جلوش نيستWHERE (((tbl1388.city)<>0))
-
نقل قول: تهيه گزارش آمار ساليانه
سلام دوست من
برای یادآوری تاپیک رو مرور میکردم.
برنامه خوب پیش میره؟
نگفتید از چه روشی تیبل و کوئریهارو پیاده سازی کردید، کاش میگفتید یا نمونه میذاشتید ببینیم این سطر چیه... :متفکر:
بجای 0 از null استفاده کنید ببینید جواب میده؟
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
دوست خوب من با راهنمائي هاي عالي شما مگه مي شه برنامه خوب پيش نره. :چشمک::لبخندساده: واقعا ممنونم. بزرگوار اون تغييراتي بود كه از شما راهنمائي خواستم، براي سال جديد توي يه ديتابيس ديگه اعمال كردم و يه لينك گذاشتم به سال 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;
لطف شما رو فراموش نمي كنم :قلب: :قلب: :بوس:
پيشاپيش سال نوي شما مبارك
-
نقل قول: تهيه گزارش آمار ساليانه
سلام
سال نوی شما هم مبارک دوست من
نقل قول:
براي سال جديد توي يه ديتابيس ديگه اعمال كردم و يه لينك گذاشتم به سال 89 از بانك 90. چون نمونه هام از شماره يك دوباره شروع مي شه يه ديتابيس جديد اختصاص دادم هم براي احتياط و هم براي افزايش سرعت ولي چيزي كه محدود مي كنه جستجوهام هست كه نمي تونم دامنه تاريخ رو بيش تر از يك سال بدم. شبيه به اين مورد داشتيد؟ چكار كرديد؟
جدا کردن دیتابیس سالهای مختلف این دردسرهارو هم داره، باید یه فکری واسش بکنی.
اگه با گزارش گیری سالهای قبل در سال جاری خیلی کار داری پیشنهاد میدم حتما دیتا یکی بشه( آسونترین راه)... راستی تعداد فیلدها به چندتا رسیده که یکی بودن دیتابیس سالهای مختلف سرعتو کم میکنه!!؟؟
در ضمن، اگه تیبل داده های سال قبل لینک هستن به دیتای سال جاری با کد نویسی میتونی بهشون دسترسی داشته باشی و گزارش گیری کنی.
در مورد قسمت دوم سوالتون:
مطمئنا برنامتون تا حالا خیلی فرق کرده، یه نمونه جدید میتونه خیلی کمک کنه که سریعتر این مشکلتون حل بشه.
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
دوست عزيز من سلام
- تعداد فيلد ها هر سال حدود سه هزار تا مي رسه. مشكلي كه بوجود مي آد شروع شدن شماره ها از عدد يك براي هر سال هست كه مجبور شدم ديتابيس ها رو جدا كنم.
- تيبل ها هم به هم لينك نيستند.
- يه رديف صفر هم اضافه مي كنه كه در نمونه بهتر منظورم رو مي تونم برسونم.
- بزرگوار چطور مي شه همين يا يه گزارشي شبيه به اين رو بصورت درصد ساخت؟ مثلا تعداد نمونه هاي شيراز 20% كل نمونه هاي سال بوده و 10% نمونه هاي فروردين ماه.
51.rar
-
نقل قول: تهيه گزارش آمار ساليانه
ممنون مي شم راهنمايي بفرمائيد.
-
نقل قول: تهيه گزارش آمار ساليانه
-
نقل قول: تهيه گزارش آمار ساليانه
سلام دوست من
نمونه کوئری شما روی سیستم من خطای زبان ذخیره سازی میده...!!!:گیج:
همچنین وقتی ریپورت رو تغییر میدم اجازه ثبت به همون دلیل بالا رو نمیده...!!!:متفکر:
این سطر رو به تب data و قسمت filter ریپورتتون اضافه کنید:
Table.address <> null
اینجوری مشکل سطر با اطلاعات 0 حل میشه فکر کنم.
در مورد گزارش درصدی هم لطفا بگید چجوری میخواهید اطلاعات نمایش داده بشه، نوع نمایش خیلی مهمه(مثل پست اولتون توی همین تاپیک)
موفق باشید.
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام دوست خوب من
1- كدي رو كه پيشنهاد داديد گذاشتم ولي همچنان صفرها برقرارند
2- گزارش درصدي چيزي شبيه به تصوير زير رو مي شه ساخت؟
ضمیمه 68662
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
سلام دوست خوب من
1- كدي رو كه پيشنهاد داديد گذاشتم ولي همچنان صفرها برقرارند
سلام
من كه گذاشتم، شد...:چشمک:
اينم مدركش و عكسش
ضمیمه 68723
موفق باشيد
-
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
مثلا تعداد نمونه هاي شيراز 20% كل نمونه هاي سال بوده و 10% نمونه هاي فروردين ماه.
...
2- گزارش درصدي چيزي شبيه به تصوير زير رو مي شه ساخت؟
ضمیمه 68662
بالاخره كدومش مد نظر هست؟
مثال درصد سالانه هستش
عكس درصد ماهانه
حالا درصد ماهانه يا سالانه!!!؟؟؟
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام بزرگوار
1- آره درست شد. من Filter On Load رو NO گذاشته بودم.
2- دوست من تصویر رو تصحیح کردم. ببخشید :چشمک:. برای یه دیتابیس دیگه هم می خواستم که اونجا درصد مواردی که مثلا مقدار تست شماره 2 یک شهر، بین 1 تا 4 باشه و ... (البته هم برای ماه و هم برای سال). برای همچین موردهایی می شه از کدهایی که در این نمونه می ذاریم برای اون هم استفاده کرد یا قصه اش جداست؟
ضمیمه 68739تشکر ویژه بابت راهنمائی های عالی شما :قلب::قلب::تشویق::تشویق::بوس:: وس:
-
نقل قول: تهيه گزارش آمار ساليانه
دوست من ممنون می شم راهنمائی بفرمائید.
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام
جواب سوال دوم شما، همون جدولي كه كشيديد، همون روز3 شنبه حاضر بود.
جسارتا آپلود نكردم تا يه كم بيشتر روش كار كنيد.
خيلي خوبه كه سوال ميپرسيد، و خيلي خوبتر ميشه، اگر كه از كد نويسي نترسيد.
با توجه به كدهايي كه تا امروز با هم و دوستان عزيز ديگه كار كرديم، طراحي اين گزارش و خيلي گزارشهاي ديگه براي شما قابل انجامه.
جمع برنامه نويس و نظر شخصي بنده اينه كه سره نخ توسط دوستان داده بشه و خودمون بريم قرقره نخ رو تموم كنيم:بامزه:.
دوست من از كد نويسي نترسيد
موفق باشيد.
-
2 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام دوست خوب من
بزرگوار ممنونم از راهنمائی های عالی شما :تشویق::تشویق::تشویق:
عزیز به کوئری نمونه ای که ضمیمه کردم، شرط WHERE (test1) Is Not Null
رو اضافه کردم پیغام زیر رو می ده که در واقع چون برای همه ماهها، رکورد ندارم دلیل نمایش این پیغام هست. چطور می شه این مشکل رو حل کرد؟
-
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
سلام دوست خوب من
بزرگوار ممنونم از راهنمائی های عالی شما :تشویق::تشویق::تشویق:
عزیز به کوئری نمونه ای که ضمیمه کردم، شرط
WHERE (test1) Is Not Null
رو اضافه کردم پیغام زیر رو می ده که در واقع چون برای همه ماهها، رکورد ندارم دلیل نمایش این پیغام هست. چطور می شه این مشکل رو حل کرد؟
سلام
یه کوچولو دقت نکردی
این شرط رو باید موقع نمایش بذاری فقط، روی ریپورت فقط.
چرا؟
سوال خوبیه، چون ما در کوئری 3 کراس تب کردیم ماههای سال رو با تاریخ تستها، و لازم داریم که شهری باشه که در تمام تاریخها تست داشته باشه( که عملا شما در جدولتون ندارید)
بنابراین در کوئری ، ما نباید این شرط رو بذاریم، وگرنه ماههایی که تست نداریم در کوئری نمایش داده نمیشه و ریپورت هم نمیتونه اونهارو پیدا کنه و خطای پیدا نکردن یه ماه رو میده.
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
سلام
عزیز در قسمت Filter ریپورت منظورتون هست؟ test1 Is Not Null رو در اون گذاشتم ولی پیغام داد.
در ضمن همونطوری که در تصویر پست 56 (فیلتر کردن ریپورت) گفته بودید، در قسمت Filter ریپورت، address Is Not Null هم هست.
-
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
سلام
عزیز در قسمت 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 ریپورت فقط بايد انجام بشه، تا منظور شما حاصل بشه.
موفق باشيد.
-
2 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام دوست من
بزرگوار صحيح مي فرمائيد. در مورد كوئري كه مشكلي نيست.
1- منظور من هم همون فيلتر ريپورت بود چون همين كد (WHERE (test1) Is Not Null) رو در قسمت Filter ریپورت گذاشتم ولي جواب نداد. اونو با كد test1 Is Not Null عوض كردم باز هم نشد.
ضمیمه 68917
2- در پست 56 همين تاپيك هم در قسمت فيلتر ريپورت، كد address Is Not Null رو براي حذف صفرهاي رديف اول پيشنهاد داده بوديد. اگه بخوايم شرطي رو اضافه كنيم به فيلتر (مثل شرط فوق: خالي نبودن فيلد test1) با كلمه And اين دو تا رو يكي كنم؟
ضمیمه 68918
-
نقل قول: تهيه گزارش آمار ساليانه
سلام
بله کلمه ربط AND هستش.
ولی فکر میکنید جواب بگیرید...؟؟
test1 جزو فیلدهای کوئری شما هست؟ که حالا میخواهید اونو در ریپورت فیلتر کنید؟
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
سلام دوست من
شما مي فرمائيد كه: "فيلتر در قسمت Filter ریپورت فقط بايد انجام بشه" و "test1 جزو فیلدهای کوئری نيست که اونو در ریپورت فیلتر کنم" پس يا منظورتون رو از "Filter ریپورت" متوجه نمي شم (يعني منظور، Filter در تصوير پست 65 نيست)،:گیج: يا اول بايد در كوئري تغييري بدم بعد در ريپورت، فيلتر كنم. و يا... :گریه::گریه:
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام
اینا دو تا موضوع جدا هستن.
این عکسو ببین:
ضمیمه 68971
اگر در کوئری فیلتر کنی دیگه بعضی از ماهها رو که در ریپورت بهشون نیاز دارى دیده نمیشن و کنارشون یه علامت سبز رنگ دیده میشه که میگه اطلاعاتی برای نمایش ندارن و در نتیجه خطای پست 61 رو میده.
این تمام.
موضوع بعدی
در پست 65 قسمت دوم گفتی:
نقل قول:
(مثل شرط فوق: خالي نبودن فيلد test1)
من یه قدم جلوتر رفتم و از شما سوال کردم:
نقل قول:
ولی فکر میکنید جواب بگیرید...؟؟
test1 جزو فیلدهای کوئری شما هست؟ که حالا میخواهید اونو در ریپورت فیلتر کنید؟
حالا جواب
بله، شما باید کوئری بنویسید که test1 باشه توش، جمعی، تفریقی، نمایشی چیزی روش انجام بدید====> در ریپورت فیلتر کنید.
:کف::افسرده::اشتباه:(کف کردم:چشمک:)
موفق باشید.
-
1 ضمیمه
نقل قول: تهيه گزارش آمار ساليانه
سلام
عزيز كد زير رو گذاشتم ولي هر شهر به تعدادي كه ركورد داره مي آد نه يكجا مثل دوبار شيراز تكرار مي شه:
ضمیمه 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;
https://barnamenevis.org/images/misc/pencil.png
-
نقل قول: تهيه گزارش آمار ساليانه
نقل قول:
نوشته شده توسط
arman2000
سلام
عزيز كد زير رو گذاشتم ولي هر شهر به تعدادي كه ركورد داره مي آد نه يكجا مثل دوبار شيراز تكرار مي شه:
ضمیمه 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;
https://barnamenevis.org/images/misc/pencil.png
سلام
با اینکه از نتیجه کوئری سر در نیاوردم، ولی... تا اینجا، کدی نوشتی که به 1 دردی بخوره .
حالا چرا تعجب میکنی که تکراریه؟
کدی که نوشتید اینو میخواد و کوئری هم دستور شمارو اجرا میکنه
کد شما میگه گروپ بای کن شهری که شیرازه با تعداد تست1 در ماههای مختلف...
انتظار ندارید که تست1 با مقدار 0 و 4 با هم گروپ بای بشن؟
پس میشه دوتا شیراز، یکی با تست1 برابر 0 و یکی برابر 4
موفق باشید.
-
نقل قول: تهيه گزارش آمار ساليانه
من يك گزارش دارم كه شبيه اينه ولي به جاي ماه هاي سال بايد تعداد روزهاي بين تاريخ قرار بگيره.
و نكته اينجاست كه اگر تعداد ستون بيش از يك صفحه شد برود به صفحه بعد و به همين منوال ادامه پيدا مي كنه.
براي اين گزارش چه روشي ميشه استفاده كرد.