ايران ويج

نسخه‌ی کامل: جمع کل ستون
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من می خواهم در اس کیو ال سرور  کوئری بنویسم که برای مثال تاریخ اول آخر مشخص کنم بعد جنسیت هم مشخص کنم بعد بگه از این تاریخ تا این تاریخ کلا چند نفر مرد ثبت شده است، جمع کل می خواهم که برای مثال بگه 17 نفر یعنی کلا یک رکورد داشته باشم که اونم جمع کل باشه

با تشکر فراوان.


کد:
SELECT  COUNT(PSex) AS Count8
FROM         TParvande
GROUP BY PSex, PDateB
HAVING      (PDateB >= '1394/01/01') AND (PDateB <= '1394/04/31') AND (PSex = 'مرد')
اول از همه تاریخ ها رو به صورت عدد ثبت کن! یعنی تاریخ 1394/5/3 رو باید 13940503 ذخیره کنی! اینجوری قابلیت مقایسه تاریخ ها درست می شه.

حالا کوئری رو به این شکل می نویسین:


کد:
SELECT COUNT(PSex) AS Count8 FROM TParvande WHERE PDateB >= 13940101 AND PDateB <= 13940431 AND PSex = 'مرد'
ممنون.
چرا وقتی من این کد میزنم تعداد 72 تا می باشد.
کد:
SELECT PSex
FROM         TParvande
GROUP BY PSex, PDateB
HAVING      (PDateB >= '1394/01/01') AND (PDateB <= '1394/04/31') AND (PSex = 'مرد')

بعد این کد میزنم تعداد میشه 255 تا برای چی این طوری میشه
کد:
SELECT PSex --, COUNT(PSex) AS Count8
FROM TParvande
WHERE (PDateB >= '1394/01/01') AND (PDateB <= '1394/04/31') AND (PSex = 'مرد')


بعد چرا باید تاریخ ها به صورت عددی ثبت کنم؟؟؟؟؟؟
علتش اینه که توی دستور خودتون از GROUP BY استفاده کردین و PDateB رو برای Group کردن بهش دادین! این به این معنیه که اگه 5 نفر مرد توی یک روز ثبت نام کنن، فقط 1 رکورد برمی گرده!

حتماً نباید تاریخ ها رو به صورت عددی ثبت کنید، ولی کلاً کار کردن با اعداد راحت تر از کار کردن با تاریخ شمسیه!