একটি টেবিল এসকিউএল মধ্যে দুটি কলামের সমষ্টি

My assignment is that i have Three columns Stock_Opening,Stock_New,Stock_Available apart from P_Key and F_key.I have to insert some value in Stock_New. Then Stock_Opening + Stock_New will add up and value will go into Stock_Available

সমস্যা: যখন আমি Stock_New তে একটি মান সন্নিবেশ করান এবং এটি কার্যকর করে কেবলমাত্র Stock_New আপডেট করুন যদি আমি আবার একই ক্যোয়ারীটি চালাই তবে এটি বর্তমানের সাথে Stock_New উভয় টেবিল আপডেট করুন  মান এবং Stock_Available পূর্ববর্তী মান সহ। আমি চাই যে Stock_New এবং Stock_Available একযোগে আপডেট করুন Bellow আমি এক্সিকিউটিভ করছি যে প্রশ্ন

UPDATE Stock
SET Stock_New = Stock_New + '2',
    Stock_Available = Stock_Opening + Stock_New
WHERE Med_ID = 'PANAD223'

Bellow স্ক্রিনশট রৈখিকভাবে হয়

This is the table before execution

This is the table after first execution

This is the table after second execution

0
স্ক্রিনশটগুলির পরিবর্তে, আপনার কোডটি পাঠ্য হিসাবে পোস্ট করুন।
যোগ লেখক Larnu, উৎস

7 উত্তর

যতদূর আমি দেখি, গণিত কলাম আপনার ক্ষেত্রে আরও ভাল দেখাচ্ছে।

গণিত কলাম আসলে ভার্চুয়াল কলাম যা শারীরিক নয়   কলাম চিহ্নিত করা না হওয়া পর্যন্ত টেবিলের মধ্যে সংরক্ষিত। জন্য মান   প্রতিলিপিযুক্ত কলামগুলিকে প্রতি বার উল্লেখ করা হয় যখন এটিতে রেফারেন্স করা হয়   ক্যোয়ারী?

see https://www.c-sharpcorner.com/article/computed-columns-in-sql-server/

1
যোগ

Stock_New is updated with latest value after update is finished. Try:

UPDATE Stock SET Stock_New = Stock_New + 2 , Stock_Available = Stock_Opening + Stock_New+2 WHERE Med_ID='PANAD223'
0
যোগ

যদি আপনি UPDATE এ একটি কলামের উল্লেখ করেন তবে UPDATE এর মানটি এর আগে পাবেন। সুতরাং Stock_New Stock_Available = Stock_Opening + Stock_New এ সর্বদা দুটি ছোট। আপনাকে অবশ্যই 2 যুক্ত করতে হবে।

UPDATE stock
       SET stock_new = stock_new + 2,
           stock_available = stock_opening + stock_new + 2
       WHERE med_id = 'PANAD223';

এছাড়াও, যদি আপনার সংখ্যা আক্ষরিক হয়, তবে একক উদ্ধৃতিগুলিতে তাদের ঘিরে ফেলবেন না। যে স্ট্রিং জন্য।

0
যোগ
create proc sampleupdate
as
begin
declare @stocknew int,
declare @stockopening int 

set @stocknew=(select Stock_New from Stock (condition))
set @stockopening=(select Stock_Opening  from Stock (condition))

set @[email protected] +'2'
UPDATE Stock SET Stock_New [email protected], Stock_Available = @stockopening + @sn WHERE 
Med_ID='PANAD223'
end
0
যোগ
সঞ্চিত পদ্ধতির জন্য যেতে ভাল, তথ্য টাইপ পরিবর্তিত হতে পারে
যোগ লেখক Anjan, উৎস

নীচের মত আপডেট করার চেষ্টা করুন:

UPDATE Stock SET Stock_New = Stock_New + '2', Stock_Available = Stock_Opening + Stock_New + '2' WHERE Med_ID='PANAD223'
0
যোগ

আপনার stock_available = stock_opening + stock_new + 2 থাকতে পারে কারণ SQL প্রথম মান গণনা করে, আপডেট হওয়া নয়।

কলাম Stock_Available হিসাবে অন্য দুটি কলাম থেকে গণনা করা একটি সহজ উপায় হল:

ALTER TABLE Stock
DROP COLUMN Stock_Available

ALTER TABLE Stock
ADD Stock_Available AS Stock_New + Stock_Opening

এখন আপনি শুধুমাত্র একটি আপডেট করতে হবে:

UPDATE Stock Set Stock_New = Stock_New + 2 WHERE Med_ID='PANAD223'

এবং Stock_Available স্বয়ংক্রিয়ভাবে আপডেট হবে

0
যোগ

যখন আপনি 1 টি তথ্য আপডেট করেন, স্টক_নুই = 28, স্টক_অপেনিং = ২0

UPDATE Stock SET Stock_New = 28 + '2', 
                 Stock_Available = 20 + 28
 WHERE Med_ID='PANAD223'

যখন আপনি তথ্য আপডেট 2, Stock_New = 30, Stock_Opening = 20

UPDATE Stock SET Stock_New = 28 + '2', 
                 Stock_Available = 20 + 30
 WHERE Med_ID='PANAD223'

তাই আপনি যোগ (+ '2')

UPDATE Stock SET Stock_New = Stock_New + '2', 
                 Stock_Available = Stock_Opening + Stock_New + '2'
 WHERE Med_ID='PANAD223'
0
যোগ