PDA

View Full Version : خالي بودن پرس و جو(query)



khosravani
سه شنبه 16 تیر 1388, 00:34 صبح
با سلام خدمت دوستان گرامي
من با يك مشكل برخورد كردم در صورت امكان راهنمائي فرمائيد:
سئوال من اين است كه تعدادي query دارم كه توسط يك query نهايي اطلاعات آنها جمع آوري ميگردد . اشكال اينجاست كه اگر يكي از query ها فاقد اطلاعات باشد query نهائي هيچ اطلاعاتي را نمايش نميدهد .هدف اين است كه اگر هر كدام از query هاي فرعي خالي بود query نهائي بتواند اطلاعات بقيه را نشان دهد و براي فيلد query خالي مثلا عدد صفر را منظور نمايد.
با تشكر

amir4_1363
سه شنبه 16 تیر 1388, 07:51 صبح
دوست عزیز خود کوئری منبع نیست وباید از یک منبع استفاده کند همانطور که میدانید مثلا باید از یک تیبل یا یک کوئری که داده داشته باشد یا اینکه باید کد نویسی کنی

khosravani
سه شنبه 16 تیر 1388, 11:34 صبح
دوست گرامي با تشكر از پاسخ ارسالي
منظور بنده هم اين است به هر حال در يك پرس و جو كه از يك بانك به عمل مي آيد ممكن است اطلاعات مورد درخواست وجود نداشته باشد.بنابراين نتيجه پرس و جو خالي است .حال اگر در كنار اين پرس و جو query هاي ديگري هم باشد كه توسط يك query مادر فراخوان شوند ولو اينكه داراي نتيجه و پاسخ باشند بدليل اينكه query اول تهي است نتيجه نهائي نيز تهي ديده ميشود نظر اين جانب رسيدن به روشي است كه بتوان نتيجه query مادر را به هر شكل ممكن مشاهده كرد و تهي بودن يك query مانع روئيت نتايج ساير پرس و جو نگردد.
با تشكر

amirzazadeh
سه شنبه 16 تیر 1388, 12:24 عصر
دوست گرامي با تشكر از پاسخ ارسالي
منظور بنده هم اين است به هر حال در يك پرس و جو كه از يك بانك به عمل مي آيد ممكن است اطلاعات مورد درخواست وجود نداشته باشد.بنابراين نتيجه پرس و جو خالي است .حال اگر در كنار اين پرس و جو query هاي ديگري هم باشد كه توسط يك query مادر فراخوان شوند ولو اينكه داراي نتيجه و پاسخ باشند بدليل اينكه query اول تهي است نتيجه نهائي نيز تهي ديده ميشود نظر اين جانب رسيدن به روشي است كه بتوان نتيجه query مادر را به هر شكل ممكن مشاهده كرد و تهي بودن يك query مانع روئيت نتايج ساير پرس و جو نگردد.
با تشكر

خوب دوست من چرا از توابع شرطي iif يا Nz استفاده نميكنين تا در صورت خالي بودن كوئري از مقدار جانشين كه شما براش تعريف ميكنين استفاده كنه.

khosravani
سه شنبه 16 تیر 1388, 13:16 عصر
دوست گرامي ممكنه نحوه استفاده از تابع فوق را بيشتر توضيح بدهيد

amirzazadeh
چهارشنبه 17 تیر 1388, 08:10 صبح
دوست گرامي ممكنه نحوه استفاده از تابع فوق را بيشتر توضيح بدهيد

شكل كلي دستور : ([Nz(variant, [valueifnull
اگر نتيجه تابع Null يا به عبارتي خالي باشه اين تابع مقدار صفر رو براش در نظر ميگيره. به عنوان مثال 2+varXنتيجه خالي يا Null رو برميگردونه(با فرض اينكه متغير varX مقدارش Null باشه) ولي عبارت 2 + (Nz(varX در صورت خالي بودن متغير مقدار 2 رو نشان خواهد داد.تابع iif هم همينكارو انجام ميده وشكل كلي اون اينطوريه:
با اين تفاوت كه هر دو قسمت true و false در اختيار كاربره.
(IIf(expr, truepart, falsepart
..........................
موفق باشيد

khosravani
چهارشنبه 17 تیر 1388, 12:33 عصر
اين تابع در كدام قسمت query و به چه صورت نوشته ميشود ممكنه با مثال بنويسيد
با تشكر

dadsara
چهارشنبه 17 تیر 1388, 15:09 عصر
هدف اين است كه اگر هر كدام از query هاي فرعي خالي بود query نهائي بتواند اطلاعات بقيه را نشان دهد و براي فيلد query خالي مثلا عدد صفر را منظور نمايد
سلام
شما می توانید در قسمت روابط بین کوئری ها ، جوین ها را از طرف کوئری اصلی بطرف کوئری های دیگر جوین کنید

amirzazadeh
پنج شنبه 18 تیر 1388, 07:49 صبح
اين تابع در كدام قسمت query و به چه صورت نوشته ميشود ممكنه با مثال بنويسيد
با تشكر
دوست عزيز اگر براتون ممكنه نمونه خودتون رو اپلود كنين تا روي اون كار كنيم.

khosravani
پنج شنبه 18 تیر 1388, 22:39 عصر
يك فايل نمونه را فرستادم با اين توضيح كه قصد داريم جمع مبلغ را براساس نوع هزينه محاسبه كنيم . حال اگر نوع هزينه (29) در بانك اطلاعاتي (sorathesab) وجود نداشته باشد كوري (sabad_kol_7) فاقد پاسخ ميباشد.هدف اين است كه اگر همچين اتفاقي افتاد كوري فوق نتيجه صفر را براي فيلد sumofmablag5 منظور نمايد تا از اين نتيجه بتوان در مراحل بعدي استفاده نمود.
با تشكر از دوستان گرامي

dadsara
شنبه 20 تیر 1388, 07:39 صبح
سلام
دوست عزیز به نمونه ضمیمه نگاه کنید ، در اینحالت نیازی به نوشتن دو کوئری ندارید
در خصوص کد هزینه 29 عرض کنم در هیچ یک از جدولهای جنابعالی کد هزینه 29 تعریف نشده است لذا نمی توان انتظار داشت در کوئری آنرا طراحی کرد
چنانچه جنابعالی یک جدول جهت کدهای هزینه خود طراحی نموده اید آنرا آپلود کنید تا برای آن نیز پیشنهاد لازم ارائه گردد

khosravani
شنبه 20 تیر 1388, 11:30 صبح
دوست گرامي من بايستي توضيح ميدادم اين قسمت بخشي از يك برنامه است كه قبل و بعد آن در اينجا آورده نشده است . ببينيد منظور بنده هم همين است نوع هزينه 29 در بانك موجود نيست واگر گزارشي در باره اين نوع هزينه درخواست گردد نتيجه تهي خواهد بود هدف اين است ايا امكان اين وجود دارد كه بجاي تهي نشان دادن كوري ،عدد صفر در sumofmablag5 نمايش داده شود يا خير ايا تابع nz اينجا كارائي دارد و چگونه؟

dadsara
شنبه 20 تیر 1388, 11:50 صبح
مورد اعلامی را در کوئری می خواهید یا ریپورت
- اگر در ریپورت می خواهید، تابعی در ریپورت می باشد که اگر خروجی آن خالی بود پیامی ظاهر گردد

khosravani
شنبه 20 تیر 1388, 12:17 عصر
جناب dadsara ضمن تشكر بااطلاع ميرساند اين يكي از كوري هاي است در گزارش استفاده ميشود و چون اين كوري فاقد نتيجه است باعث ميگردد كه گزارش خراب شده و فاقد خروجي باشد بنابراين حتما لازم است كه اين كوري به هر شكل ممكن داراي پاسخ باشد از راهنمائيتون متشكرم

dadsara
شنبه 20 تیر 1388, 12:52 عصر
می تونی این قسمت از فایلت که مشکل داری را آپلود کنی؟

khosravani
شنبه 20 تیر 1388, 22:05 عصر
دوست گرامي فايل را به صورت مورد نظر ارسال كردم
نكات زير قابل ذكر است:
1-ريپورت را اجرا نمائيد
2-سال را 1387 وارد كنيد
3- درجه را 6 وارد كنيد
------------------------------------------
نتيجه ريپورت خالي توام با ارور ميباشد كه ناشي از پاسخ تهي sabad_kol_7 ميباشد . ذر صورتي اطلاعات ريپورت كامل خواهد بود كه query فوق داراي پاسخ باشد . هدف اين است كه در صورت تهي بودن نتيجه كوري 7 فيلد sumofmablag5 داراي مقدار صفر يا هر عدد ديگري باشد.

مشتاق یادگیری
شنبه 20 تیر 1388, 22:21 عصر
سلام
دوست عزيز ببينيد من سوال شما را متوجه شده ام شما مي خواهيد نتيجه گزارش فايل ضميمه تهي نباشد

nabeel
شنبه 20 تیر 1388, 22:33 عصر
سلام khosravani
فایل اصلاح شده رو ضمیمه میکنم

33058

موفق باشید

dadsara
یک شنبه 21 تیر 1388, 07:18 صبح
سلام
دوست عزیز جناب خسروانی ، باتوجه به اینکه زحمت اصلاح فایل رادوستان کشیدند جسارتا مواردی را پیشنهاد می کنم در صورت صلاحدید در نرم افزار خود اعمال نمائید
برای هر یک از آیتمها مثل بن خواربار ، کمک هزینه تحصیلی ، تشویق و . . . یک فیلد در بانک درنظر نگیرید بلکه فقط یک فیلد جهت نوع هزینه و یا کمک طراحی کنید که در آن کد مربوط به آن را وارد نمائید در این حالت علاوه بر زیبا تر شدن نمای برنامه تان از بروز مشکلاتی این چنینی که برایتان پیش آمده نیز جلوگیری می گردد

khosravani
یک شنبه 21 تیر 1388, 13:56 عصر
از اينكه دوستان لطف كردند و راهنمائي نمودند از تك تك ايشان تشكر ميكنم. به اميد موفقيت كليه عزيزان