मैं एसक्यूएल सर्वर 2008R2 में निम्नलिखित चार टेबल:एसक्यूएल सर्वर: एक SQL क्वेरी में अनुक्रम गणना
DECLARE @ParentGroup TABLE (ParentGroup_ID INT, ParentGroup_Name VARCHAR(100));
DECLARE @ChildGroup TABLE (ChildGroup_id INT, ChildGroup_name VARCHAR(100), ParentGroup_id INT);
DECLARE @Entity TABLE ([Entity_id] INT, [Entity_name] VARCHAR(100));
DECLARE @ChildGroupEntity TABLE (ChildGroupEntity_id INT, ChildGroup_id INT, [Entity_ID] INT);
INSERT INTO @parentGroup VALUES (1, 'England'), (2, 'USA');
INSERT INTO @ChildGroup VALUES (10, 'Sussex', 1), (11, 'Essex', 1), (12, 'Middlesex', 1);
INSERT INTO @entity VALUES (100, 'Entity0'),(101, 'Entity1'),(102, 'Entity2'),(103, 'Entity3'),(104, 'Entity4'),(105, 'Entity5'),(106, 'Entity6');
INSERT INTO @ChildGroupEntity VALUES (1000, 10, 100), (1001, 10, 101), (1002, 10, 102), (1003, 11, 103), (1004, 11, 104), (1005, 12, 100), (1006, 12, 105), (1007, 12, 106);
/*
SELECT * FROM @parentGroup
SELECT * FROM @ChildGroup
SELECT * FROm @entity
SELECT * FROM @ChildGroupEntity
*/
तालिकाओं के बीच संबंधों के रूप में नीचे:
SELECT ParentGroup_Name, ChildGroup_name, [Entity_name], 0 [ChildGroupSequence], 0 [EntitySequence]
FROM @ChildGroupEntity cge
INNER JOIN @ChildGroup cg ON cg.ChildGroup_id=cge.ChildGroup_id
INNER JOIN @parentGroup pg ON pg.parentGroup_id=cg.parentGroup_id
INNER JOIN @entity e ON e.[entity_id]=cge.[Entity_ID]
ORDER BY ParentGroup_Name, ChildGroup_name, [Entity_name]
ऊपर के उत्पादन क्वेरी है:
-------------------------------------------------------------------------------
ParentGroup_Name|ChildGroup_name|Entity_name|ChildGroupSequence|EntitySequence|
-------------------------------------------------------------------------------
England |Essex |Entity3 |0 |0 |
England |Essex |Entity4 |0 |0 |
England |Middlesex |Entity0 |0 |0 |
England |Middlesex |Entity5 |0 |0 |
England |Middlesex |Entity6 |0 |0 |
England |Sussex |Entity0 |0 |0 |
England |Sussex |Entity1 |0 |0 |
England |Sussex |Entity2 |0 |0 |
-------------------------------------------------------------------------------
अब, मैं बाल समूहों और बाल समूहों से जुड़े सभी संस्थाओं को जानना चाहता हूं मूल समूह 1. इसके अलावा के लिए, मैं गणना करने के लिए [ChildGroupSequence] चाहते हैं, [EntitySequence] नीचे तर्क के लिए के रूप में:
- ChildGroupSequence स्तंभ मूल समूह के भीतर बच्चे समूह के अनुक्रम का प्रतिनिधित्व करना चाहिए, 1000 से शुरू होने वाले और incrementing 100 तक। मैं पहला उपसमूह 1000 होगा, दूसरा उपसमूह 1100 होगा।
- EntitySequence कॉलम को 100 से शुरू होने और एकल अंकों से बढ़ने, प्रत्येक उपसमूह के लिए रीसेट करने के लिए बच्चे समूह के भीतर इकाई अनुक्रम का प्रतिनिधित्व करना चाहिए। अर्थात। 100 पर childgroup 1 शुरू होता है में पहली इकाई, के रूप में 2.
तो childgroup में पहली इकाई करता है, उत्पादन निम्न स्वरूप में होना चाहिए:
-------------------------------------------------------------------------------
ParentGroup_Name|ChildGroup_name|Entity_name|ChildGroupSequence|EntitySequence|
-------------------------------------------------------------------------------
England |Essex |Entity3 |1000 |100 |
England |Essex |Entity4 |1000 |101 |
England |Middlesex |Entity0 |1100 |100 |
England |Middlesex |Entity5 |1100 |101 |
England |Middlesex |Entity6 |1100 |102 |
England |Sussex |Entity0 |1200 |100 |
England |Sussex |Entity1 |1200 |101 |
England |Sussex |Entity2 |1200 |102 |
-------------------------------------------------------------------------------
मैं पढ़ने के द्वारा आसानी से कर सकते एप्लिकेशन लेयर (नेट प्रोग्राम) में मान, लेकिन इस तरह की कुछ छोटी चीजों का प्रयोग करके SQL सर्वर सीखना चाहते हैं। क्या कोई इस SQL क्वेरी को लिखने में मेरी सहायता कर सकता है?
किसी भी मदद की बहुत सराहना की जाएगी। अग्रिम में धन्यवाद।
संपादित करें: मेरा नमूना डेटा पहले नियम को सही ढंग से प्रतिबिंबित नहीं कर रहा था, नियम बताता है कि बाल समूह की मात्रा 100 से बढ़ी जानी चाहिए और नमूना आउटपुट में वृद्धि 1 होनी चाहिए। दूसरी क्वेरी 100 से वृद्धि को दर्शाती है। @jpw : इसे इंगित करने के लिए बहुत बहुत धन्यवाद।
आप इस उत्तर के लिए बहुत बहुत धन्यवाद, बहुत सराहना की। – Sathish