PDA

View Full Version : COMMAND برای datareportخواهشا جواب بدید



ario
جمعه 02 آبان 1382, 05:13 صبح
من در نوشتن عبارت SQL برایCOMMAND مشکل دارم مشکلم هم اینه که وقی اسم یه فیلد محاسباتی رو میارم دیگه نمیتونم فیلد دیگه ای داشته باشم
اگه ممکنه لطفا همون چند خط COMMAND رو برام بنویسید من میخوام رکوردهایی که کد تکراری دارند رو نمایش بدم همراه با بقیه اطلاعاتش

SELECT mainf.f1, mainf.f2, mainf.f3, Count(mainf.fno) AS CountOffno, Count(mainf.na) AS CountOfna, mainf.f4, mainf.f5, mainf.f6
FROM mainf
GROUP BY mainf.f3
HAVING (((mainf.f1)>[?] And (mainf.f1)<[??]) AND ((mainf.f2)=[???]) AND ((mainf.f3)=[????]) AND ((Count(mainf.fno))>1) AND ((Count(mainf.na))>1));

f1,....فیلدهایی هستند که میخوام نمایش داده بشه(اگه فقط فیلد countداشته باشم یافقط فیلدهای بدون count جواب میده ولی باهم جواب نمیده) لطفا کامل توضیح بدید از تعریف پارامترها تا ...
:( توروخدا کمکم کنید

S.Azish
جمعه 02 آبان 1382, 11:50 صبح
در این طور موارد باید از دو دستور Sql استفاده کرد



select distinct * from tblTest where id in (select id from tblTest group by id having count(id)>1)

hmm
شنبه 03 آبان 1382, 11:15 صبح
با سلام
ببین در sql اگر از group by استفاده میکنی باید تمام فیلدهایی که در select میآیند یا محاسباتی باشند مثل count یا عینا درون group by
قرار بگیرند البته روشهای دیگری هم هست که بماند
روش مدیر بخش هم خوب است ولی برای رکوردهای زیاد سرعت خوبی ندارد
کد زیر شاید کمکت کنه
SELECT mainf.f1, mainf.f2, mainf.f3, Count(mainf.fno) AS CountOffno, Count(mainf.na) AS CountOfna, mainf.f4, mainf.f5, mainf.f6
FROM mainf
group by mainf.f4, mainf.f5, mainf.f6 , mainf.f1, mainf.f2, mainf.f3
((Count(*))>1));

hmm
شنبه 03 آبان 1382, 11:18 صبح
با سلام
لطفا به خط آخر having اضافه کن
و ترتیب فیلد ها در group by رو درست کن
ببخشید اگه غلط نوشتم

ario
یک شنبه 04 آبان 1382, 04:45 صبح
از همتون ممنونم ولی بازهم هیچکس به حرف من بیچاره گوش نکرد
روش آقای اذیش رو امتحان کردم تو اکسس جواب میده ولی تو وی بی خطا نمیگیره اما هیچ رکوردی هم نشون نمیده
روش hmmعزیز هم تو پارامتر مشکل داره
تورو خدا برای تعریف پارامتر بگید چکار میکنید کار من گیر همین گزارشه

S.Azish
دوشنبه 05 آبان 1382, 14:59 عصر
برای تعریف پارامتر در Access اسم یک فیلد رو ببرید که وجود نداره مثلا



Select FName From tblTest Where FName = paramFName



چون paramFName در لیست فیلدهای شما نیست Access اونو به عنوان یه پارامتر فرض میکنه و در ازاش از شما مقدار میخواد, دقیقآ مثل Stored Procedure ها در SQL Server

کم حوصله
دوشنبه 05 آبان 1382, 23:47 عصر
والا من جوابش را نمی دونم ولی یکم مسئله را کامل تر توضیح بدم اگر دقیق گرفته باشم
مشکل دوست ما این است که زمانی که در قسمت انتخاب فیلدها هم فیلد خاصی را نام می برد و هم می خواهد عملیات خاصی را انجام دهد مشکل دارد
واضح تر این که اگر در دستور select فقط نام فیلد ببری مشکلی نیست و یا اگر فقط عملیات محاسباتی خاصی انجام بدی مشکلی نیست ولی در تلفیق این دو کار مشکل دارند


select f1 from tbl1
select count(f2) as exp1 from tbl1

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


select f1,count(f2) as exp1 from tbl1

در این صورت مشکل دارد
درست متوجه شدم ؟؟؟ :oops:

ario
سه شنبه 06 آبان 1382, 04:26 صبح
از همه ممنون کم حوصله عزیز شما هم مشکل منو دقیقا متوجه شدی
ولی بالاخره تونستم حلش کنم :D
بازم متشکرم

کم حوصله
سه شنبه 06 آبان 1382, 23:29 عصر
ولی بالاخره تونستم حلش کنم
:shock: :shock: :shock:
بابا دمت گرم همینه معرفتت :(
خوب جوابش را بگذار ببینیم چه کار کردی تا ما هم یاد بگیریم

ario
جمعه 09 آبان 1382, 04:41 صبح
کم حوصله جون شرمنده که دیر شد
بخدا الان همرام نیست ولی قول قول مردونه تا فردا میذارمش
بازم ممنون

کم حوصله
جمعه 09 آبان 1382, 22:26 عصر
دستتون درد نکنه از این که به یاد بچه های گروه هستید :oops: :oops:

کم حوصله
یک شنبه 11 آبان 1382, 02:28 صبح
ario جون چی شد این راه حل ؟؟؟؟؟؟؟؟؟ :oops:

کم حوصله
سه شنبه 13 آبان 1382, 02:10 صبح
همون که من گفتم خیلی با مرامی :x :x :x

کم حوصله جون ول کن این بی معرفت رو :wink:

ario
شنبه 17 آبان 1382, 05:30 صبح
سلام
کم حوصله جونم اینقدر بی انصاف نباش بخدا accountاینترنتم تموم شد بازم معذرت میخوام :oops:

SELECT DISTINCT *
FROM mainf
WHERE (((f1)>[?] And (f1)<[??]) AND ((f2)=[???]) AND ((f3)=[????])) and exists (SELECT f4
FROM mainf
GROUP BY f4
HAVING (((Count(f4))>1)));

یعنی همه مشکل سر کلمه "exists " بود
حالا اخماتو وا کن آشتی کنیم :wink:

کم حوصله
شنبه 17 آبان 1382, 11:19 صبح
:oops: :oops:
مرسی حالا شد :wink: :mrgreen: