PDA

View Full Version : استفاده از Group By در فرامین SQL (فوری)



ealireza
چهارشنبه 23 دی 1383, 13:27 عصر
سلام
من میخواهم هنگام با Group By سورت هم بکنم
از این فرمان استفاده میکنم


Select ActionPlace, Count(*) As TotalVisitor From Visitors Group By ActionPlace

من میهواهم وقتی که دسته کرد از بیشترین TotalVisitor سوررت شه بیاد پایین یعنی دقیقا

Order By Count( TotalVisitor) Desc
ولی متاسفانه همچین چیزی تو ASP نیست

اگه میشه راهنمایی کنید


با تشکر فراوان از همگی علیرضا :)

shaghayegh_miri
پنج شنبه 24 دی 1383, 19:31 عصر
بجای دستور
orderby count(TotalVisitors)
دستور زیر را بنویسید
order by TotalVisitors

ealireza
پنج شنبه 24 دی 1383, 22:53 عصر
بجای دستور
orderby count(TotalVisitors)
دستور زیر را بنویسید
order by TotalVisitorsدوست عزیز میخواهم از مجموع بیشترینها سورت کنم نه TotalVisitors تو اون یک فیلد عددی نیست :mad:


کمک :evil2:

tayebeh
شنبه 26 دی 1383, 07:22 صبح
بنویسید order by totalvisitor desc

دوست عزیز میخواهم از مجموع بیشترینها سورت کنم نه TotalVisitors تو اون یک فیلد عددی نیست
بیشتر توضیح بدید لطفا
باتشکر
بای

esi022
چهارشنبه 30 دی 1383, 10:09 صبح
sql = "begin transaction "
sql = sql & " DECLARE @a char(50)"
sql = sql & " SET @a = Count( TotalVisitor) "
sql = sql & " Select ActionPlace, Count(*) As TotalVisitor From Visitors Group By ActionPlace order by @a desc"
sql = sql & " IF @@ERROR <> 0 "
sql = sql & " ROLLBACK TRANSACTION "
sql = sql & "ELSE "
sql = sql & " COMMIT TRANSACTION "

ealireza
چهارشنبه 30 دی 1383, 14:57 عصر
sql = "begin transaction "
sql = sql & " DECLARE @a char(50)"
sql = sql & " SET @a = Count( TotalVisitor) "
sql = sql & " Select ActionPlace, Count(*) As TotalVisitor From Visitors Group By ActionPlace order by @a desc"
sql = sql & " IF @@ERROR <> 0 "
sql = sql & " ROLLBACK TRANSACTION "
sql = sql & "ELSE "
sql = sql & " COMMIT TRANSACTION "عجب روشی :kaf:

اگه میشه یکم توضیح هم بدین
اقا ایراد گرفت اگه میشه درستش کن

میگه از توابع درست SQL استفاده کنید !

esi022
چهارشنبه 30 دی 1383, 15:27 عصر
سلام
begin trans , end trans دستورات sql هستند که لیستی از دستورات رو میتونید بین
اونها اجرا کنید . متغیر محلی @@error هم در صورتی که بین این دو دستور مشکلی پیش بیاد مقدار میگیره
خالا اگه این مقدار صفر نباشه یعنی مشکل بوجود اومده و شما رویه رو ذخیره نمیکنید
rollback یعنی تغییراتو برگردون (‌یه چیزی تو ماه های غلط کردم )

خالا میشه بگی چه پیغام خطایی میگیری

ealireza
پنج شنبه 01 بهمن 1383, 16:31 عصر
سلام
begin trans , end trans دستورات sql هستند که لیستی از دستورات رو میتونید بین
اونها اجرا کنید . متغیر محلی @@error هم در صورتی که بین این دو دستور مشکلی پیش بیاد مقدار میگیره
خالا اگه این مقدار صفر نباشه یعنی مشکل بوجود اومده و شما رویه رو ذخیره نمیکنید
rollback یعنی تغییراتو برگردون (‌یه چیزی تو ماه های غلط کردم )

خالا میشه بگی چه پیغام خطایی میگیریesi022 جان دقیقا این پیغام رو میده


Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

فکر کنم باید EXECUDE کنم تا درست بشه اما اگه



Set EX= Server.CreateObject("ADODB.Recordset")
EX.Open SQL,ADO

ازش ایراد بگیره که هیچی
کدت خیلی عجب بود جایی همچین چیزی ندیده بودم :strange:

فقط لطفا کمک کن ردیف شه :موفق:



علیرضا

esi022
یک شنبه 04 بهمن 1383, 03:46 صبح
ealireza جان سلام
من الآن که کد اولت رو دیدم متوجه شدم :wink: که totalvisitor متغیر خودته
خط دوم کد من از total visitor استفاده میکنه
در حالی که وجود نداره
با یه select - total visitor رو به یه متغیر نسبت بده
بعد ازش استفاده کن
اگه تا صبح اینو دیدی که هیچی- صبح دوباره سر میزنم - کد جدید میزارم
اگه لطف کنی فیلدهای این table رو که داری ازش استفاده میکنی با دیتا تایپش برام بزاری زودتر میتونم کمکت کنم

ealireza
دوشنبه 05 بهمن 1383, 18:54 عصر
ealireza جان سلام
من الآن که کد اولت رو دیدم متوجه شدم :wink: که totalvisitor متغیر خودته
خط دوم کد من از total visitor استفاده میکنه
در حالی که وجود نداره
با یه select - total visitor رو به یه متغیر نسبت بده
بعد ازش استفاده کن
اگه تا صبح اینو دیدی که هیچی- صبح دوباره سر میزنم - کد جدید میزارم
اگه لطف کنی فیلدهای این table رو که داری ازش استفاده میکنی با دیتا تایپش برام بزاری زودتر میتونم کمکت کنمعزیز از Access استفاده میکنم

esi022
شنبه 10 بهمن 1383, 07:05 صبح
علیرضا سلام
منظورم اسم فیلدهات بو و نوعشون

مثلا name : text(40)

esi022
شنبه 10 بهمن 1383, 07:12 صبح
اینم تست کن


sql = " DECLARE @a char(50)"
sql = sql & " Select Count(*) As TotalVisitor From Visitors "
sql = sql & " SET @a = TotalVisitor "
sql = sql & " Select ActionPlace From Visitors Group By ActionPlace order by @a desc"
sql = sql & " IF @@ERROR <> 0 "
sql = sql & " ROLLBACK TRANSACTION "
sql = sql & "ELSE "
sql = sql & " COMMIT TRANSACTION "

ealireza
شنبه 10 بهمن 1383, 11:49 صبح
:تشویق: دستت درد نکنه :mrgreen:

ولی مطمئنی که رو Access هم کار میکنه :گیج:

اگه میشه اینم بهم بگو :mrgreen:
چطوری میشه از Group By استفاده کنم و یک تیبل که تو Group نیست رو سورت کنم یعنی مثل زیر
اما ERROR داد :mad:
کد زیر رو استفاده کردم

Select Year , MonthID , MonthName,date From post Group By Year,MonthID,MonthName order by date desc
میگه از DATE هم باید در Group By استفاده کنی :mad:

اگه میشه راهنمایی کنید :evil2:

esi022
یک شنبه 11 بهمن 1383, 00:04 صبح
این که تو access جواب میده رو حدس میزنم مشکلی نداشته باشه
من تو sql تست زدم - اما نتیجه رو بگو

در مورد سوال جدیدت شک دارم که بشه
تست میکنم

در مورد سوالی که تو یه تاپیک دیگه کردی : ایجاد جدول تو بانک خالی
هینمجا یه جواب میزنم نگن پستاتو الکی زیاد میکنی - اصلا پست من 1 :mad:

اگه از t-sql و oledbprovider استفاده کنی با مثال زیر امتحان کن


sql="create table tablename (filed1 char(16))"
:موفق:

ealireza
یک شنبه 11 بهمن 1383, 11:09 صبح
این که تو access جواب میده رو حدس میزنم مشکلی نداشته باشه
من تو sql تست زدم - اما نتیجه رو بگو

در مورد سوال جدیدت شک دارم که بشه
تست میکنم

در مورد سوالی که تو یه تاپیک دیگه کردی : ایجاد جدول تو بانک خالی
هینمجا یه جواب میزنم نگن پستاتو الکی زیاد میکنی - اصلا پست من 1 :mad:

اگه از t-sql و oledbprovider استفاده کنی با مثال زیر امتحان کن


sql="create table tablename (filed1 char(16))"
:موفق:بابا من غلط کردم همچین حرفی بزنم

اگه میشه واسه اون
Select Year , MonthID , MonthName,date From post Group By Year,MonthID,MonthName order by date desc یه کاری بکن

مرسی

esi022
یک شنبه 11 بهمن 1383, 13:32 عصر
منظورم شما نبودی دوست عزیز :flower:
در مورد سوالهای قبلیت اول نتیجه رو بگو تا گیج نشدم :mrgreen:
این یکی روهم تست میکنم
لطفا بگو چرا میخوای از 3 تا فیلد group by بگیری