+2 امتیاز

با سلام من در sql    دو  ستون دارم که یکی  مبلغ  و در دیگری نوع مبلغ مثل در آمد و هزینه وارد شده است حالا میخواهم موجودی این ستون رابگیرم

*******

ممنون درست شد فقط یک چیزی اگه فقط یک رکورد درآمد داشته باشیم مبلغ موجودی را نشون نمیده ؟؟؟؟

بسته شده

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

سلام.

SELECT 
(SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Daramad') 
  - 
(SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Hazine' ) AS mojodi;

 

از این روش هم میتونید استفاده کنید.

DECLARE @Daramad int;
DECLARE @Hazine int;
DECLARE @mojodi nvarchar(50);
SET @Daramad = (SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Daramad');
SET @Hazine = (SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Hazine' );
--**********************************************************************
--*میتونید هزینه و در آمد رو تفکیک کنید و به طور جداگانه نشون بدید
--*یا اینکه در آمد و هزینه هاتون رو از هم کم کنید
--*در اینصورت معتغیر موجودیتون رو از نوع مناسب انتخاب کنید
--*SET @mojodi = @Daramad - @Hazine;
--**********************************************************************
SET @mojodi = 'Daramad = ' + CONVERT(nvarchar, @Daramad) + ' Hazineh = ' + CONVERT(nvarchar, @Hazine);
SELECT @mojodi AS mojodi;

 

و در  #C

        private void button1_Click_1(object sender, EventArgs e)
        {
            using (SqlConnection con = new SqlConnection("ConnectionString"))
            {
                con.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandText = @"SELECT
                                        (SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Daramad') 
                                          - 
                                        (SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Hazine' ) AS mojodi;";
                    string mojodi = cmd.ExecuteScalar().ToString();
                    MessageBox.Show(mojodi);
                }
                con.Close();
            }

 

 

 

با سلام و تبریک عید

با تایپ دوباره مشکل ارور درست شد

اما فقط موجودی را صفر نشان میده فرقی نمیکنه یک رکورد یا چند رکورد
توسط (469 امتیاز) 9 35 73

سلام.

عید شما هم مبارک امیدوارم سال خوبی داشته باشید.

جدول من به این شکل هست:

 

و این هم پروسیجرم

CREATE PROC Test
AS
DECLARE @Daramad int;
DECLARE @Hazine int;
SET @Daramad = (SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Daramad');
SET @Hazine = (SELECT SUM(Mablagh) FROM Table1 WHERE NoeMablagh = 'Hazine'); 
  
IF  @Daramad IS NOT NULL AND @Hazine IS NOT NULL --IS NOT NULL یعنی اگر نال نبود
   SELECT @Daramad - @Hazine AS mojodi;
ELSE
  BEGIN -- آکولاد باز=>{ 
     IF @Daramad IS NULL -- IS NULL یعنی اگر نال بود یا خالی بود
        SET @Daramad = 0;
     IF @Hazine IS NULL
        SET @Hazine = 0;
     SELECT @Daramad - @Hazine AS mojodi;
 END  -- آکولاد بسته=>} 
return 0;

 

و موجودی رو به شکل صحیح بر میگردونه

ویرایش شده توسط
توسط (2,595 امتیاز) 5 15 90
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,920 کاربر

دسته بندی ها

...