vahid80
دوشنبه 17 بهمن 1384, 16:02 عصر
با سلام
مشکل من در sql این است که من جدولی با فیلدهای کد،تاریخ،تعداد دارم یعنی 1 کد میتواند چند مقدار تاریخ داشته باشد(مانند فروش یک جنس با کد خاص). حالا برای گزارش گیری از دادهها میخواهم دادههایی که تا تاریخ خاصی وارد شدهاند را بر حسب کد جمع کنیم یعنی دقیقا با دستور SELECT-GROUP_HAVING ولی مشکل این است که شرط من بر حسب فیلد تاریخ است نه کد که با دستور HAVING بتوانم شرط را بنویسم یعنی مثالهای زیر اشتباه هستند.
SELECT dates,code,sum(coun) from table1 group by code having dates<#datdate#[RIGHT]
راهی که به ذهن من رسید آن است که اول یک فیلتر روی جدول انجام داده و فاکتورهایی که تاریخ آنها قبل از تاریخ موردنظر است را بدست آورده در یک جدول بریزیم و از دستور group بعد از این کار استفاده کرده و سپس جدول را پاک کنیم. ولی راه خوبی نیست. آیا در شرط having میتوان از فیلد دیگری غیر از فیلدی که با آن گروهبندی میکنیم(code) استفاده کرد./RIGHT].
با تشکر
مشکل من در sql این است که من جدولی با فیلدهای کد،تاریخ،تعداد دارم یعنی 1 کد میتواند چند مقدار تاریخ داشته باشد(مانند فروش یک جنس با کد خاص). حالا برای گزارش گیری از دادهها میخواهم دادههایی که تا تاریخ خاصی وارد شدهاند را بر حسب کد جمع کنیم یعنی دقیقا با دستور SELECT-GROUP_HAVING ولی مشکل این است که شرط من بر حسب فیلد تاریخ است نه کد که با دستور HAVING بتوانم شرط را بنویسم یعنی مثالهای زیر اشتباه هستند.
SELECT dates,code,sum(coun) from table1 group by code having dates<#datdate#[RIGHT]
راهی که به ذهن من رسید آن است که اول یک فیلتر روی جدول انجام داده و فاکتورهایی که تاریخ آنها قبل از تاریخ موردنظر است را بدست آورده در یک جدول بریزیم و از دستور group بعد از این کار استفاده کرده و سپس جدول را پاک کنیم. ولی راه خوبی نیست. آیا در شرط having میتوان از فیلد دیگری غیر از فیلدی که با آن گروهبندی میکنیم(code) استفاده کرد./RIGHT].
با تشکر