SQL क्वेरी के भीतर दो फ़ील्ड को कैसे सबमिट करें


84

मुझे कुल दो फ़ील्ड प्राप्त करने की आवश्यकता है जो एक ही पंक्ति के भीतर हैं और उसी पंक्ति के अंत में किसी फ़ील्ड में उस संख्या को इनपुट करें।

यह मेरा कोड है।

Sum(tbl1.fld1 + tbl1.fld2) AS [Total]

क्या यह SUM फ़ंक्शन का उपयोग किया जाता है, या आप केवल कॉलम के कुल प्राप्त करने के लिए SUM फ़ंक्शन का उपयोग कर सकते हैं?

धन्यवाद

जवाबों:


204

SUMएक समग्र कार्य है। यह प्रत्येक समूह के लिए कुल की गणना करेगा। +एक पंक्ति में दो या अधिक स्तंभों की गणना के लिए उपयोग किया जाता है।

इस उदाहरण पर विचार करें,

ID  VALUE1  VALUE2
===================
1   1       2
1   2       2
2   3       4
2   4       5

 

SELECT  ID, SUM(VALUE1), SUM(VALUE2)
FROM    tableName
GROUP   BY ID

परिणाम होगा

ID, SUM(VALUE1), SUM(VALUE2)
1   3           4
2   7           9

 

SELECT  ID, VALUE1 + VALUE2
FROM    TableName

परिणाम होगा

ID, VALUE1 + VALUE2
1   3
1   4
2   7
2   9

 

SELECT  ID, SUM(VALUE1 + VALUE2)
FROM    tableName
GROUP   BY ID

परिणाम होगा

ID, SUM(VALUE1 + VALUE2)
1   7
2   16

10
यह उत्तर जटिल नहीं बल्कि सरल और आवश्यकतानुसार विस्तृत है। अच्छा था!
बिटरब्लू

1
कुदोस जॉन, संभवतः इस सवाल का जवाब देने का सबसे अच्छा तरीका है!
अभिजीत

29

निम्नलिखित का प्रयास करें:

SELECT *, (FieldA + FieldB) AS Sum
FROM Table

इंट में कनवर्ट करना महत्वपूर्ण भी हो सकता है, यदि फ़ील्ड में varts युक्त
स्याही हो

@ ओबल टोबेल मैं उन स्तंभों का योग चाहता हूं जो गतिशील हैं
प्रशांत पिंपले

7

SUM का उपयोग कई पंक्तियों के लिए स्तंभ में मान को योग करने के लिए किया जाता है। आप बस अपने कॉलम को एक साथ जोड़ सकते हैं:

select tblExportVertexCompliance.TotalDaysOnIncivek + tblExportVertexCompliance.IncivekDaysOtherSource AS [Total Days on Incivek]

7
ID  VALUE1  VALUE2
===================
1   1       2

1   2       2
2   3       4
2   4       5

select ID, (coalesce(VALUE1 ,0) + coalesce(VALUE2 ,0) as Total from TableName

5

मेरे प्रतिष्ठा अंक 50 से कम होने के कारण मैं ई कोडर के उत्तर के लिए टिप्पणी या वोट नहीं कर सकता था। ऐसा करने का यह सबसे अच्छा तरीका है ताकि आपको समूह का उपयोग न करना पड़े क्योंकि मेरे पास एक समान मुद्दा था। टोटल के रूप में
ऐसा SUM((coalesce(VALUE1 ,0)) + (coalesce(VALUE2 ,0)))करने से आपको वह नंबर मिलेगा जो आप चाहते हैं लेकिन ग्रुप बाय न करने के लिए आपको किसी भी त्रुटि से छुटकारा दिलाता है। यह मेरी क्वेरी थी और मुझे प्रत्येक डीलर के लिए कुल गिनती और कुल राशि दी और फिर मुझे गुणवत्ता और जोखिम भरा डीलर ऋण के लिए एक सबटोटल दिया।

SELECT 
    DISTINCT STEP1.DEALER_NBR
    ,COUNT(*) AS DLR_TOT_CNT
    ,SUM((COALESCE(DLR_QLTY,0))+(COALESCE(DLR_RISKY,0))) AS DLR_TOT_AMT
    ,COUNT(STEP1.DLR_QLTY) AS DLR_QLTY_CNT
    ,SUM(STEP1.DLR_QLTY) AS DLR_QLTY_AMT
    ,COUNT(STEP1.DLR_RISKY) AS DLR_RISKY_CNT
    ,SUM(STEP1.DLR_RISKY) AS DLR_RISKY_AMT
    FROM STEP1
    WHERE DLR_QLTY IS NOT NULL OR DLR_RISKY IS NOT NULL
        GROUP BY STEP1.DEALER_NBR

4

योग फ़ंक्शन केवल एक स्तंभ का कुल प्राप्त करता है। विभिन्न स्तंभों से दो मानों को जोड़ने के लिए, मानों को int में परिवर्तित करें और + -Operator का उपयोग करके उन्हें जोड़ें

Select (convert(int, col1)+convert(int, col2)) as summed from tbl1

उम्मीद है की वो मदद करदे।


3

यदि आप एक साथ दो कॉलम जोड़ना चाहते हैं, तो आपको बस उन्हें जोड़ना होगा। फिर आपको क्वेरी द्वारा लौटी प्रत्येक पंक्ति के लिए उन दो कॉलमों का योग मिलेगा।

आपका कोड क्या कर रहा है दो कॉलम को एक साथ जोड़ रहा है और फिर राशि का योग प्राप्त कर रहा है। यह काम करेगा, लेकिन ऐसा नहीं हो सकता है जिसे आप पूरा करने का प्रयास कर रहे हैं।


3

कॉलम जोड़ने पर बस एक अनुस्मारक। यदि मानों में से एक NULL है तो उन कॉलमों का कुल NULL बन जाता है। इस प्रकार कुछ पोस्टरों ने दूसरे पैरामीटर 0 होने के कारण कोलेस की सिफारिश की है

मुझे पता है कि यह एक पुरानी पोस्टिंग थी लेकिन पूर्णता के लिए इसे जोड़ना चाहता था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.