mysql - sum

ooghry

Member
سلام به همه
من یکی از تیبلهام به این شکله:

CREATE TABLE `table` (
`id` bigint(20) NOT NULL auto_increment,
`register` bigint(20) NOT NULL,
`amount` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=5 ;

INSERT INTO `table` (`id`, `register`, `amount`) VALUES
(1, 1, -1000),
(2, 2, 400),
(3, 1, 400),
(4, 2, 200);
میخوام register هایی انتخاب بشن که جمع amount منفی باشه.
ممنون از همه
 

justpersian

Member
سلام .
PHP:
mysql_query("SELECT * FROM `table` WHERE amount < 0");
ببین کارت رو راه میندازه ...
 

ooghry

Member
عزیز اشتباه متوجه شدی ، من میخوام فیلد amount واسه هر register جمع بشه و فقط اونایی انتخاب بشن که جمعش کمتر از صفر باشه. مثلا این:

SELECT register FROM `table` where sum(amount) < 0
 
آخرین ویرایش:

ziXet

مدیر انجمن PHP/MYSQL
عزیز اشتباه متوجه شدی ، من میخوام فیلد amount واسه هر register جمع بشه و فقط اونایی انتخاب بشن که جمعش کمتر از صفر باشه. مثلا این:

SELECT register FROM `table` where sum(amount) < 0
یعنی چی جمع amount منفی بشه؟
amount کجا باید با چی جمع بشه؟
 

ooghry

Member
یعنی چی جمع amount منفی بشه؟
amount کجا باید با چی جمع بشه؟

چه خوب شد که یکی جواب داد.
فیلد register شماره افراد ثبت نام شدست و من میخوام کوئری بزنم که amount -های مربوط به هر فرد ثبت نام شده جمع زده بشه و فقط اونایی تو جواب کوئری بیاد که جمعشون کمتر از صفر باشه.

کد:
SELECT register,sum(amount) FROM `table` group by register
 
کوئری بالا میاد جمع همرو میاره ، من میخوام فقط اونایی که منفی هستند بیاد.
منظورمو خوب گفتم؟
 

ziXet

مدیر انجمن PHP/MYSQL
چه خوب شد که یکی جواب داد.
فیلد register شماره افراد ثبت نام شدست و من میخوام کوئری بزنم که amount -های مربوط به هر فرد ثبت نام شده جمع زده بشه و فقط اونایی تو جواب کوئری بیاد که جمعشون کمتر از صفر باشه.

کد:
SELECT register,sum(amount) FROM `table` group by register
 
کوئری بالا میاد جمع همرو میاره ، من میخوام فقط اونایی که منفی هستند بیاد.
منظورمو خوب گفتم؟
تاره منظورتو گرفتم!
راستش الان راهی به ذهنم نمیرسه ولی با دوتا کوئری میشه ردفیش کرد!
یا اینکه تو حلقه while مربوط به همین کوئری یه شرط بذاری
 

P.H.P

Member
با یه حلقه و یه شرط مشکلت حل میشه

اگه نتونستی یه کد کامل با دیتابیس بزار تست میکنم جوابشو بت میدم
 

ooghry

Member
دقیقا با انداختن تو یه حلقه درست میشه ، ولی میخوام ببینم چه جوری فقط با یک کوئری میشه این کارو انجام داد؟
 

P.H.P

Member
من دیشب نخوابیدم الان هنگ کردم تو هم درست توضیح نمیدی که

یعنی الان باید 1000- رو نمایش بده؟

ببین یه مثال نوشتنی بزن
 

P.H.P

Member
خوب یه تیبل دادی درست هم توضیح نمیدی دوست من

باید ID رجیسترر رو set کنی

به شکل زیر

PHP:
<?php
$result = mysql_query("SELECT register, sum(amount) FROM `table` WHERE register='1'");
while($row = mysql_fetch_array($result))
{
    echo $row["sum(amount)"];
}
?>

کد:
OUTPUT
---------------------
-600
---------------------

موفق باشی
 

ooghry

Member
نه دیگه ، بازم منظورمو نگرفتی .من میخوام یک کوئری بزنم (کلی - نه برای شخص شماره یک) و فقط اونایی تو جواب کوئری باشن که جمع amount هاشون منفی باشه.
 

جدیدترین ارسال ها

بالا