PDA

View Full Version : کار نکردن دستور sum



rsheytoonak
شنبه 17 اسفند 1392, 01:36 صبح
سلام من کد زیر رو نوشتم ولی تابع sum جواب نمیده و بجای جمع کردن مبلغ null برمیگردونه لطفا راهنماییم کنید

SELECT id, mablagh,tarikh
FROM bimar
WHERE (tarikh BETWEEN '1392/12/12' AND '1392/12/22')
UNION
SELECT 999999,SUM(mablagh), ''''
FROM bimar
WHERE (tarikh BETWEEN '1392/12/12' AND '1392/05/22')
ORDER BY id
GO

hramezani
شنبه 17 اسفند 1392, 11:46 صبح
سلام


SELECT id, mablagh,tarikh

FROM bimar

WHERE (tarikh BETWEEN '1392/12/12' AND '1392/12/22')

UNION

SELECT 999999,SUM(ISNULL(mablagh,0)), ''''

FROM bimar

WHERE (tarikh BETWEEN '1392/12/12' AND '1392/05/22')

ORDER BY id

GO

rsheytoonak
شنبه 17 اسفند 1392, 14:39 عصر
این کدی که شما گذاشتید هم جمع مبلغ رو نشون نمیده null میزنه

cherchil_hra
یک شنبه 18 اسفند 1392, 08:51 صبح
1- وقتی پارامتر ورودی تابع sum مقدارش null باشه، بر روی بقیه مقادیر تاثیر نمیذاره. مگر اینکه همش null باشه.
2- شما در قسمت جمع کردنت 2 تا اشتباه داری:
* - وقتی از between استفاده می کنی اولین پارامترت باید کوچکتر یا مساوی پارامتر دومیت باشه تا مقداری برگردونه اما شما تاریخ بزرگتر رو اول نوشتی.
* - اولین select بین 1392/12/12 و 1392/12/22 (ماه اسفند) ولی در قسمت sum تاریخت بین 1392/12/12 و 1392/05/22 هستش

DECLARE @MinDate CHAR(10),@MaxDate AS CHAR(10)
SET @MinDate='1392/12/12'
SET @MaxDate='1392/12/22'

SELECT id, mablagh,tarikh
FROM bimar
WHERE (tarikh BETWEEN @MinDate AND @MaxDate)

UNION

SELECT 999999, SUM(mablagh), ''''
FROM bimar
WHERE (tarikh BETWEEN @MinDate AND @MaxDate)
ORDER BY id

GO

موفق باشید!