sql server - TSQL: Select from set of columns with lowest positive value -


उदाहरण स्कीमा:

  RowID मात्रा ModifiedPrice GroupPrice CustomPrice SalePrice ------- -------------------------------------------------- ------------------- 1 5 20.00 0 15.00 17.00 2 2 14.00 7.00 22.00 0 3 9 10.00 10.00 0 11.00  

के आधार पर यह उदाहरण तालिका, मैं सबसे मूल्यवान / सरल तरीके से संभवतः चार * मूल्य कॉलम के बीच न्यूनतम शून्य-शून्य मान चुनने में सक्षम होना चाहूंगा।

उदाहरण आउटपुट:

  राउड मात्रा अंतराल --------------------------- --- 1 से 5 15.00 2 2 7.00 3 से 9 10.00  

अतिरिक्त जानकारी के लिए, डीबी SQL सर्वर 2005 है।

  SELECT RowId, मात्रा, (SELECT MIN (price)) से (मूल्य संशोधित मूल्य के रूप में चुनें यूनिअस सभी का चयन समूह मूल्य यूनियन सब का चयन करें कस्टमपर्च यूनियन सभी का चयन करें बिक्री मूल्य) qi WHERE मूल्य & gt ; 0) से mytable  

यह मामला बयानों का एक समूह की तुलना में अधिक पठनीय है

नोट इस बारे में है, लेकिन है कि । 4 मामला बयान के रूप में के रूप में धीमी गति से बार

यहां परीक्षण स्क्रिप्ट जो पार्स करता है और पैदावार सही परिणाम है:।

  CREATE TABLE # T_ मूल्य (RowID INT नहीं NULL, मात्रा INT नहीं NULL, ModifiedPrice नहीं NULL नाव, GroupPrice नहीं NULL नाव, CustomPrice नहीं NULL, SalePrice तैर नहीं NULL नाव) #t_prices मान में डालें (1, 5, 20.00, 0, 15.00, 17.00) #t_prices मान में डालें (2, 2, 14.00, 7.00, 22.00, 0) #t_prices मूल्यों (3, 9, 10.00, 10.00, 0, 11.000) का चयन RowId, मात्रा, (चयन मिन (कीमत) से (चयन में डालने ModifiedPrice के रूप में मूल्य यूनिअस सभी का चयन समूह मूल्य यूनियन सभी का चयन करें कस्टमपर्च यूनियन सभी का चयन करें SalePrice) qi जहां कीमत & gt; 0) से #t_prices  

Comments