ورود

View Full Version : سوال: مشکل با 1 کوئري



hooooman
جمعه 13 دی 1387, 12:48 عصر
سلام
ممکنه سوالم ابتدايي باشه اگه ممکنه راهنمود ارائه کنين
من با کوئري زير 2تا ستون جمع ساختم. اما قطعا ميدونم کوئريم اصولي نيست . اما بهرحال سواتم !! بيشتر ياري نميکنه . اين سوال رو فقط بخاطر اين تراز نميپرسم . ميخام اصولي موضوع رو بفهمم براي موارد مشابه .



select
'sumdebitEFT'=(SELECT sum(debit)
FROM sanadList INNER JOIN
sanadriz ON sanadList.id = sanadriz.ListId
where doremali=13 and typesanad=10 and
moeen=code)
,
'sumcreditEFT'=(SELECT sum(credit)
FROM sanadList INNER JOIN
sanadriz ON sanadList.id = sanadriz.ListId
where doremali=13 and typesanad=10 and
moeen=code)
from coding
GO



من تو اين کد از جدول کدينگ حسابهاي مالي استفاده کردم و 2 ستون براي جمع گردش بدهکار و بستانکار سند افتتاحيه ساختم که از داخل جداول اسناد استخراج ميشن . حالا مشخصه که 1 تيکه کد 2 بار تکرار شده . حالا من اصلا به بحث حسابداريش کاري ندارم. اين کوئري رو چجوري بايد بهينه کرد. ميخام ياد بگيرم از شما اساتيد.

تولائی
جمعه 13 دی 1387, 14:51 عصر
من همچین کدی رو پیشنهاد می‌کنم
select sum(debit) sumdebitEFT,sum(credit) sumcreditEFTfrom sanadList INNER JOINsanadriz ON sanadList.id = sanadriz.ListId inner join coding on moeen=codewhere doremali=13 and typesanad=10

hooooman
شنبه 14 دی 1387, 02:56 صبح
آقا بزارين مشکلو اينجوري بگم
من 1 جدول دارم که ليست اسناد توش هست ListSanad
1 فيلد identity بنام ID کليدشه
1 جدول دارم بنام Rizsanad که با فيلد Listid با جدول اولم مرتبطه
توي جدوله ليست 1 فيلد دارم Vouch_typecode که نوع سند رو مشخص ميکنه
حالا ميخام توي جدول دومي جمع بدهکار و جمع بستانکارو با شرط Vouch_typecode =10 و يکبارم با شرط not vouch_typecode=10 و البته Group By Ledger که فيلد کد معين در جدول Rizsanad هستش بگيرم جوري که اين 4 تا ستون کنار هم قرار بگيرن.