के साथ खोज एसक्यूएल परिशोधित करें एएसपीनेट एमवीसी एप्लिकेशन और सी # के साथ काम करना। हम एक खोज पेज पर काम कर रहे हैं।कस्टम पेजिनेशन
मेरे उत्तर के साथ अपडेट किया गया। कृपया नीचे दिए गए अपने ही जवाब देख सकते हैं और सुझाव है
दुर्भाग्य में एसक्यूएल नीला में काम नहीं कर रहा चयन http://blogs.msdn.com/b/sqlazure/archive/2010/05/04/10007212.aspx
मुझे
मदद मैं अपने आइटम खोज परिणाम दिखाने के लिए करने के लिए
आइटम नीचे की तालिका है टेबल
- Itemid, SHOPID, ITEMNAME, विवरण, मूल्य, CatID
दुकान टेबल
- SHOPId, हैडर, cityId, सक्रिय
शहर टेबल
- cityId, CITYName, regionId, CountryISO
श्रेणी तालिका
- CatID, CATNAME
यह मेरी खोज जिज्ञासा है कि दिए गए मापदंड
के लिए पृष्ठवार परिणाम देता हैDECLARE @unitItems INT=20
DECLARE @sortOrder INT=0
DECLARE @catId INT
DECLARE @search NVARCHAR (100)=''
DECLARE @REGIONID INT=0
DECLARE @cityId INT=0
DECLARE @maxPrice DECIMAL (10, 2)
DECLARE @page INT
DECLARE @currentDate DATETIME2 (0)
set @unitItems=20
set @catId=0
set @sortOrder=0
set @search=''
set @cityId=1
set @maxPrice=0
set @page=1
set @currentDate='2013-02-24 13:14:58.073'
;WITH itemresult AS (
SELECT IT.ITEMID, IT.ITEMNAME, IT.DESCRIPTION, IT.PRICE,
IT.CATID, C.CATNAME AS CATNAME,S.HEADER AS SHOPHEADER,CI.CITYNAME AS CITY,
ROW_NUMBER() OVER (ORDER BY IT.SHOWDATE DESC) AS RowNumber
FROM ITEM AS IT INNER JOIN SHOP AS S ON IT.SHOPId = S.ShopId
INNER JOIN CITY AS CI ON CI.CITYID = S.CITYID
INNER JOIN COUNTRY AS CY ON CI.COUNTRYISO = CY.COUNTRYISO
INNER JOIN REGION AS R ON CI.REGIONID = R.REGIONID
INNER JOIN CITY AS CI2 ON CI2.CITYID = @cityId
INNER JOIN CATEGORY AS C ON IT.CATID = C.CATID
WHERE S.ACTIVE = 1
GROUP BY IT.ITEMID, IT.ITEMNAME, IT.HEADER, IT.DESCRIPTION, IT.PRICE,
IT.CATID, IT.SHOWDATE,S.HEADER,C.CATNAME,CI.CITYNAME)
SELECT IT.*, CEILING(CAST(RN AS float)/@unitItems) AS UNITPAGES, RN AS UNITROWS
FROM itemresult IT
INNER JOIN (SELECT Max(RowNumber) AS RN FROM itemresult) SUBQ ON 1=1
WHERE IT.RowNumber BETWEEN (@page - 1) * @unitItems + 1
AND @unitItems * @page
समस्या:
अब समस्या हम जोड़ रहे हैं है यूआई में नए बदलाव। मान लें> 230 रिकॉर्ड समग्र
खोज परिणाम पाया के रूप में आप फिडल में देखते हैं
दूसरा परिणाम सेट- खोज यूआई अब की तरह नीचे
पहला सेट परिणामकुछ दिखा देंगे -> विभिन्न श्रेणियां & 230 रिकॉर्ड से गणना
CatID, CatName, TotalCountInSearch
पूर्व: 1 पुस्तकें 25 & 2 खेल 43 & 8 अन्य लोग 52। दिखाएँ मैं UI में नीचे की तरह दिखा सकते हैं
- सभी श्रेणियाँ (120)
- पुस्तकें (25)
- खेल (43)
- दूसरों (52)
और तीसरा परिणाम सेट-> विभिन्न शहर & 230 रिकॉर्ड से गणना
cityId, CityName, TotalCountInSearch
यूआई में नीचे प्रदर्शित
- सभी शहर (10)
- चेन्नई (4)
- बंगलोर (3) के लिए
- अन्य (3)
कैसे मैं इन मायने रखता है और सभी श्रेणियों, किताबें, allcities, आदि जैसे नाम प्राप्त कर सकते हैं? किसी भी मदद या सुझावों का स्वागत है।
Click and View SQL Fiddle here
मैं चाहूँगा खोज मानदंडों के आधार पर इन मायने रखता है करने के लिए। मेरी प्रक्रिया से सेट एक और परिणाम के रूप में इस पुनर्प्राप्त करना चाहते हैं
मुख्य अद्यतन:
मैं सभी स्कीमा और वास्तविक गतिशील क्वेरी यहां अपलोड कर दिया है https://github.com/Padayappa/SQLProblem/blob/master/PaginationIssue
प्रश्न बहुत स्पष्ट नहीं है देख सकते हैं। यदि आप दिए गए पहेली के लिए अपेक्षित परिणाम दिखा सकते हैं तो आपकी आवश्यकता को समझना आसान होगा? – Kaf
इस तरह के दिख रहे हैं http://www.sqlfiddle.com/#!3/52bbb/61 – Billa
क्षमा करें, क्योंकि आपके पास पहले से ही आवश्यक परिणाम हैं, उन प्रश्नों के साथ क्या गलत है? क्या आपका मतलब है कि आपको एक ही समय में उन 3 परिणाम सेटों को प्राप्त करने की आवश्यकता है? – Kaf