PDA

View Full Version : انتخاب چند قسمت از یک query?



V60
چهارشنبه 31 فروردین 1384, 19:16 عصر
سلام
اساتید محترم من یک مشکل ساده ولی عجیب دارم
من یک ADOquery می نویسم که یک سری فیلد را از جدولی فیلتر می کند که فیلدی به نام code دارد، حالا می خواهم از این اطلاعات جدا شده ببینم چندتاشان در فیلد code مقدار 12و چندتا 13 و چندتا 9 وجود دارد( اعداد همینجوری گفتم) نیاز به تعداد رکوردهایی دارم که در این adoquery هستند و این شرایط را دارند .
متشکر م :oops:

hr110
چهارشنبه 31 فروردین 1384, 19:20 عصر
سلام
شما باید از یک query مناسب استفاده کنید، برای این منظور باید از دستورات count و group by استفاده کنید.

V60
جمعه 02 اردیبهشت 1384, 13:02 عصر
مدیر جان
نمی شود
ببینید من توی یک dbgride باید لیست کلی را بدهم , بعد باید در کنار آن لیست به تفکیک تعداد هر کدام را نشان بدهم , کاری که الان کردم اینه که برای هر کدام یک query نوشته ام که خیلی مزخرفه و سرعت را افتضاح پایین می آورد , شما راه دیگه ای به نظرتان نمی رسد

hr110
جمعه 02 اردیبهشت 1384, 13:08 عصر
باز هم میگم، شما باید از یک کوئری مناسب استفاده کنید. اگر مایل هستید ریز مشخصات جداول را در اینجا بنویسید تا دقیقتر بتوان جواب داد.

V60
شنبه 03 اردیبهشت 1384, 01:33 صبح
ببینید از اینکه وقت میگذارید پیشاپیش متشکرم
فرض کنید من در جدولم به وسیله تاریخ ورود افراد یک گزارشگیری باید انجام دهم و بوسیله quickreport چاپ کنم اما این پایان داستان نیست من باید زیر این فرمی که پرینت می شود تعداد کسانیکه از تسهیلات a ، b، c،وd استفاده می کنند را نیز چاپ کنم و مشکل من اینجاست که این تسهیلات 10 مورد می باشند که دهن من را صاف کرده اند چون من مجبور می شوم که با یک QUERY ده مرتبه باز و بسته اش بکنم تا مقادیر مورد نظرم را بدهد . از اینکه راهنمایی می کنید متشکرم ، امیدوارم که گویا باشد.

fm_mash
یک شنبه 04 اردیبهشت 1384, 08:30 صبح
سلام
البته چون من ساختار بانک شما رو نمی دونم دقیق نمی شه گفت چکار باید کنید
ولی روش کار این است


[/code]
select a,count(a)
from table1
group by a

fm_mash
یک شنبه 04 اردیبهشت 1384, 08:31 صبح
سلام
البته چون من ساختار بانک شما رو نمی دونم دقیق نمی شه گفت چکار باید کنید
ولی روش کار این است



select a,count(a)
from table1
group by a

علیرضا جاوید
یک شنبه 04 اردیبهشت 1384, 10:41 صبح
سلام
اگر گزارشی که میخوای 2 بعدی باشه که من فکر میکنم همینطور باشه آخرین راه حل همونی هست که خودت انجام دادی
ولی چون سرعتت پایین هست میتونی از تریگر و یک جدول دیگه استفاده کرده و در حین رشد دیتابیس جدول مربوطه رو برزو کنی
اگر ریز جداول و سوال دقیق رو بگی راحتتر میشه مشورت کرد.

V60
یک شنبه 04 اردیبهشت 1384, 14:11 عصر
فرض کنید جدول این دو فیلد را دارد
فیلد tashilat ,و فیلد date
حالا من گزارشگیری می کنم بر اساس تاریخ (date) تا ببینم چه افرادی کلا از تسهیلات استفاده می کنند
بعد می خواهم بدانم چند نفر از تسهیلات وام خودرو, چند نفر از تسهیلات وام مسکن, و چند نفر ....
به این ترتیب .
یعنی اول لیست کلی را می خواهم بعد تعداد افراد استفاده کننده از تسهیلات به تفکیک

AminSobati
یک شنبه 04 اردیبهشت 1384, 20:14 عصر
دوست عزیزم،
اگر درست صورت مسئله رو متوجه شده باشم، کار شما مثل اینه که در دیتابیس Northwind مثلا بخواین بدونین کدوم مشتریها سفارش داده اند. قائدتا شما هم باید یک جدول از افراد(Customers) و یک جدول برای کسانی که از وام استفاده کردن (Orders) داشته باشین:

SELECT DISTINCT c.customerid FROM customers c JOIN orders o ON c.customerid=o.customerid
این Query به شما نشون میده که کدوم مشتریها اصلا سفارش داشتن (کدام افراد از وام استفاده کردن).
در جدول Orders یک فیلد ShipCountry وجود داره که نشون میده هر سفارش، به کدوم کشور ارسال شده. ما این رو تعبیر میکنیم به اینکه این فیلد نشون میده هر فرد، از چه وامهایی استفاده کرده. پس مثلا اگر قصد داریم بدونیم از هر وام، چند نفر استفاده کردن، باید در جدول Orders این طور تعبیر کنیم که به هر کشور، چند بار سفارش ارسال شده:

SELECT COUNT(OrderID),ShipCountry FROM Orders GROUP BY ShipCOuntry
موفق باشید