PDA

View Full Version : dsum in query



karmand
شنبه 10 شهریور 1386, 13:30 عصر
برنامه پیوست از 3 کواری استفاده شده با گروپ استفاده از دستور dsum در یک کواری چگونه است
یعنی در ستون اول ترافیک را جمع کند با شرط متعارف=1 و در ستون دیگر ترافیک را جمع کند با شرط متعارف = در یک کواری 2

morteza_lll
شنبه 10 شهریور 1386, 13:57 عصر
سلام قسمت total فیلدهایی که شرط داری را بکن Group By مشکلت حل میشه

karmand
یک شنبه 11 شهریور 1386, 06:59 صبح
سلام
فکر کنم متوجه سئوال نشدید
یعنی در یک ستون متعارف را مساوی 1 و در ستون دیگر مساوی 2 هر دو هم گروپ !!!منطقی است؟

morteza_lll
یک شنبه 11 شهریور 1386, 07:24 صبح
سلام
ببین همینو می خواستی

karmand
یک شنبه 11 شهریور 1386, 12:13 عصر
ممنون از کمک شما اما من در یک سطر میخواهم اگر کواری 3 خودم را ببینید در یک سطر نمایش میدهد اما با روش من بعدا دچار مشکل شدم

morteza_lll
یک شنبه 11 شهریور 1386, 12:30 عصر
میتونم بپرسم چه مشکلی ؟

karmand
دوشنبه 12 شهریور 1386, 07:08 صبح
در پست کلیه خدمات به 2 نوع تقسیم میشود 1 متعارف 2 جدید
در گزارشی که از من میخواهند در ستون اول نام دفتر پستی که چون کد ان را دارم نامش را میآورم در ستون دوم جمع ترافیک که خود به 2 قسمت تقسیم میشود متعارف و جدید و درامد که باز هم متعارف و جدید سهم دفتر و سهم پست نیز به همین صورت تازه مسئله مهم دفاتری که آمار نداده اند در گزارش بیاید که در لینکهای معمولی حذف میشوند بعضی از دفاتر یکی از 2 نوع خدمات را ندارند انها نیز در لینکها حذف میشوند ووووو که روش خودم تا تهیه گزارش جواب داده اما مشکل همان دفاتی که امار نداده و انهایی که یکی از 2 نوع را ندارند حل نشد که فعلا مجبور شدم برایشان اما صفر رد کنم تا در گزارش بیایند تا ماه دیگر ببینم میشود مسئله حل شود

mohammadgij
سه شنبه 13 شهریور 1386, 10:07 صبح
این کد رو داخل یک Query کپی کن و نتیجه رو ببین. من قبلا هم یک Query شبیه این نوشتم برای یکی از دوستان و کامل توضیح دادم این یک روش هستش




SELECT dafater.code_daftar, (SELECT Sum(asli.trafic) AS SumOftrafic
FROM asli INNER JOIN tab_kind ON asli.code_kind_khadmat = tab_kind.code_kind_khadmat
WHERE (((asli.mah)=4) AND ((asli.sal)=86) AND ((tab_kind.motaref)="1")) AND asli.code_daftar=dafater.code_daftar
GROUP BY asli.code_daftar) AS Terafik, (SELECT Sum(asli.trafic) AS SumOftrafic
FROM asli INNER JOIN tab_kind ON asli.code_kind_khadmat = tab_kind.code_kind_khadmat
WHERE (((tab_kind.motaref)="2") AND ((asli.mah)=4) AND ((asli.sal)=86)) AND asli.code_daftar=dafater.code_daftar
GROUP BY asli.code_daftar) AS TerafikNew
FROM dafater



و دومین روش هم اینه که یک Query دیگه بسازی و کد زیر رو قرار بدی




SELECT dafater.code_daftar, Query1.SumOftrafic, Query2.SumOftrafic
FROM (dafater LEFT JOIN Query1 ON dafater.code_daftar = Query1.code_daftar) LEFT JOIN Query2 ON dafater.code_daftar = Query2.code_daftar




این هم لینک اون مطلبی که شبیه سوال شما بود
http://barnamenevis.org/forum/showthread.php?t=72062