PDA

View Full Version : مشکل با running total



hamid_reza21
یک شنبه 05 آذر 1391, 01:23 صبح
سلام
من مجبورم با بانک هایی مثل hamsterdb-absolute یا sqlite کارکنم که از خیلی دستورات sql پشتیبانی نمی کنه فقط یک دستور دیدم میشه که اونم یک اشکال داره.تا زمانی که جدول به صورت زیر باشه این کد جواب میده:
id----------- tdate----bed----bes----total
10-------0 ------10--1391/02/04-------1
15-------0 ------5 ---1391/03/06------2
12-------3-------0 ---1391/04/04------3


select id,tDate,bed,bes,(select sum(t2.bed - t2.bes) from table1 t2 where t2.id <= t1.id ) as total
from table1 t1

حالا وقتی کاربر یک رکورد جامونده داشته باشه و تاریخ sort بشه جای عدد id که کلید و اتونامبر هست بهم میخوره مثل زیر که اشتباه محاسبه میکنه لطفا راهنمائی کنید چیکار میشه کرد.

id-----------tdate ----bed----bes----total
10-------0-------10--1391/02/04-------1
15-------0-------5----1391/03/06------2
15-------0 ------5----1391/03/06------4
12-------3-------0----1391/04/04------3

fahimi
یک شنبه 05 آذر 1391, 21:26 عصر
دوستان حداقل بگید سوالم بد مطرح کردم یا راه حلی نداره
این عملیات را جمع تجمعی می گویند
من در دلفی با Calculted فیلد نشان می دهم یا با fastreport
و اگر دلفی کار می کنی
http://http://barnamenevis.org/showthread.php?31848-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D8%AA%D9%88%D9%86-%D9%85%D8%A7%D9%86%D8%AF%D9%87-%D8%AD%D8%B3%D8%A7%D8%A8-%D8%A8%D8%A7-%D8%AC%D9%85%D8%B9-%D8%AA%D8%AC%D9%85%D8%B9%DB%8C-%D8%AF%D8%B1-FastReport (http://barnamenevis.org/showthread.php?31848-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D8%AA%D9%88%D9%86-%D9%85%D8%A7%D9%86%D8%AF%D9%87-%D8%AD%D8%B3%D8%A7%D8%A8-%D8%A8%D8%A7-%D8%AC%D9%85%D8%B9-%D8%AA%D8%AC%D9%85%D8%B9%DB%8C-%D8%AF%D8%B1-FastReport)

hamid_reza21
دوشنبه 06 آذر 1391, 00:34 صبح
خیلی ممنون از جوابتون ولی اگه از این روش در دلفی استفاده بشه و به dbgrid وصل بشه با حرکت scroll یا بالا و پائین رفتن کیبورد محاسبه بهم می خوره.

BORHAN TEC
چهارشنبه 08 آذر 1391, 00:22 صبح
سلام
SQLite به صورت ذاتی مشکلاتی دارد مثلاً امکان استفاده از Store Procedure ها را ندارد، Order By در آن بر روی فیلدهایی که در آنها از زبانهایی مثل عربی و ... استفاده شده به خوبی کار نمیکند، قابلیت Encryption به صورت ذاتی در آن وجود ندارد و ... . توجه داشته باشید که اگر برای ارتباط با Sqlite در Delphi یا C++‎ Builder از کامپوننت های AnyDac محصول شرکت da-soft استفاده کنید تمام مشکلاتی که اشاره کردم برطرف خواهد شد. به عبارتی دیگر برای استفاده بهینه از این DBMS در زبانهایی که نام بردم شما به AnyDac نیاز دارید.
موفق باشید...