PDA

View Full Version : مشکل در GROUP BY



gilsoft
پنج شنبه 20 بهمن 1390, 13:01 عصر
سلام دوستان
من میخوام این Query بر اساس فیلد Company بصورت GROUP در بیاد .. در واقع Grid زیر باید به من یک سطر نشون بده !! نه دو سطر :متفکر:
کد و تصویر زیر رو ملاحظه بفرمایید :

82306


SELECT sd.name AS 'Name',
sm.name AS 'FileName',
LEFT(sm.name,CHARINDEX('_',sm.name)-1) AS 'Company',
RIGHT(sm.name,4) AS 'Year'
FROM sys.databases sd
JOIN sys.master_files sm ON sd.database_id = sm.database_id
WHERE (LEFT(sm.name,4) = 'Data') AND (sm.type_desc = 'ROWS')
ORDER BY YEAR ASC ;
GO
اگه یه راهنمایی کوچیک کنین .. ممنون میشم ...

یوسف زالی
پنج شنبه 20 بهمن 1390, 13:25 عصر
سلام.
اگر بر اساس company گروه بندی کنید باید تکلیف year رو معلوم کنید. مثلا max(year) -- sql
برای دو فیلد دیگه هم می تونید از max استفاده کنید یا مثلا در گروه بندی تون اضافش کنید.
اشکالی نداره که در group by تابع آورده بشه.

بهزادصادقی
جمعه 21 بهمن 1390, 01:01 صبح
فرض کنید ققط یک سطر نشان دهد. آن وقت محتویات ستون های آن یک سطر دقیقا باید چی باشد؟

gilsoft
جمعه 21 بهمن 1390, 16:35 عصر
فرض کنید ققط یک سطر نشان دهد. آن وقت محتویات ستون های آن یک سطر دقیقا باید چی باشد؟
سلام دوستان
این یک مثال بود ! که مربوط به فرم Login یک نرم افزار حسابداری می باشد. Company نام شرکت و Year سال مالی آن شرکت را مشخص می کند.
مقادیر داخل گرید (Result) ممکن است بشکل زیر باشد .. تصویر زیر را ملاحظه بفرمایید :

8236782368
اگه راهکار بهتری سراغ دارید ... بفرمایید تا از آن استفاده کنم

بهزادصادقی
جمعه 21 بهمن 1390, 17:59 عصر
شرمنده. من متوجه صورت مسله نمی‌شوم. می‌بخشید. شما دقیقا دنبال چی هستید؟ آیا گرید بالا ورودی query ای می‌باشد که شما می‌خواهید آن را بنویسید، یا خروجی آن query؟ وقتی می‌گویید می‌خواهید داده‌های خویش را با استفاده از group by گروه گروه کنید، می‌خواهید چه چیز آن گروه را محاسبه کنید؟ تعداد سطرهایی که در آن گروه جای می گیرند؟ حداکثر مقدار یکی از ستون‌های آن سطرها؟ میانگین یکی از آن ستون‌ها؟ مشکل من اینجاست که من نمی‌دانم ورودی query شما چیست و خروجی آن شما می‌خواهید چی باشد. یعنی شاید شما گفته اید، ولی من متوجه آن از نوشته‌های بالای شما نشده ام. احتمالا نوشتن query ای که شما دنبالش هستید خود خیلی ساده است. مشکل توصیف دقیق خواسته شماست به صورتی که حداقل برای من قابل فهم باشد.

gilsoft
جمعه 21 بهمن 1390, 18:34 عصر
شرمنده. من متوجه صورت مسله نمی‌شوم. می‌بخشید. شما دقیقا دنبال چی هستید؟ آیا گرید بالا ورودی query ای می‌باشد که شما می‌خواهید آن را بنویسید، یا خروجی آن query؟ وقتی می‌گویید می‌خواهید داده‌های خویش را با استفاده از group by گروه گروه کنید، می‌خواهید چه چیز آن گروه را محاسبه کنید؟ تعداد سطرهایی که در آن گروه جای می گیرند؟ حداکثر مقدار یکی از ستون‌های آن سطرها؟ میانگین یکی از آن ستون‌ها؟ مشکل من اینجاست که من نمی‌دانم ورودی query شما چیست و خروجی آن شما می‌خواهید چی باشد. یعنی شاید شما گفته اید، ولی من متوجه آن از نوشته‌های بالای شما نشده ام. احتمالا نوشتن query ای که شما دنبالش هستید خود خیلی ساده است. مشکل توصیف دقیق خواسته شماست به صورتی که حداقل برای من قابل فهم باشد.
دشمنت شرمنده باشه دوست عزیز
اول یه سر به این تاپیک بزن http://barnamenevis.org/showthread.php?326949-%D9%86%D8%AD%D9%88%D9%87-%D8%A8%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D9%86%D8%A7%D9%85-%D8%A7%D8%B5%D9%84%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-Sql2008&daysprune=-1
اون گریدی رو که در تصویر پست 4# ملاحظه فرمودید، با اکسل درست کردم. منظورم این بود که امکان داره خروجی Query یه چیزی مانند گرید مذکور باشه !
سوال من خیلی واضحه : من میخوام فیلد Company رو GROUP کنم (تکراری ها حذف بشهDISTINCT ) در کامبوباکس Company نمایش بدم ، و با انتخاب هریک از آیتم های کامبوباکس Company سالهای مالی همون آیتم در کامبوباکس Year بصورت Add اضافه بشن. (به تصاویر پست 4# رجوع کنید)
توضیح اینکه من با VB.NET برنامه نویسی می کنم. از اینکه این تاپیک رو در این تالار/بخش زدم، گفتم شاید تو تالار VB.NET توسط مدیران (بعلت بی ارتباط بودن با تالار / بخش / انجمن) حذف شود !!!
از توجه تون خیلی ممنونم ... اگه میشه منو راهنمایی کنید ... بازم ممنونم

دوست عزیر اگه برات امکان داره به این سوال من تو این تاپیک جواب بده : http://barnamenevis.org/showthread.php?323726-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A7%D8%B1%D8%AA%D9%82%D8%A7%D8%A1-%D8%A7%D8%B2-Sql200-Personal-%D8%A8%D9%87-Sql2008

بهزادصادقی
جمعه 21 بهمن 1390, 22:11 عصر
ببین، من فکر می‌کنم شما کاملا در مورد مفهوم group در اس کیو ال سرور دچار سوی تفاهم هستید. اگر شماره تلفن خود را از طریق پیغام خصوصی برای من ارسال نمائید، من میتونم با شما تماس بگیرم تا در موردش صحبت کنیم. من فکر می‌کنم چند مفهوم مختلف را شما دارید با هم غاطی می‌کنید و این طوری صحبت کردن در موردش زمان خیلی زیادی را خواهد برد.