Such-SQL mit benutzerdefinierter Paginierung verfeinern

8

Arbeiten mit einer asp.net mvc-Anwendung und c #. Wir arbeiten an einer Suchseite.

Aktualisiert mit meiner Antwort. Bitte sehen Sie meine eigene Antwort unten und schlagen Sie

vor

Wählen Sie leider nicht in sql azure Ссылка

Hilf mir

Ich habe die folgenden Tabellen, um meine Artikel-Suchergebnisse anzuzeigen

Artikeltabelle

  • ITEMID, SHOPID, ITEMNAME, BESCHREIBUNG, PREIS, CATID

Ladentisch

  • SHOPID, HEADER, CITYID, AKTIV

Stadttabelle

  • CITYID, CITYName, REGIONID, CountryISO

Kategorietabelle

  • CATID, CATNAME

Dies ist meine Suchanfrage, die das paginierte Ergebnis für die angegebenen Kriterien liefert

%Vor%

Problem:

Das Problem ist nun, dass wir neue Änderungen in der Benutzeroberfläche hinzufügen. Die Suchoberfläche zeigt jetzt etwas wie unten

Erste Ergebnismenge - & gt; Nehmen Sie an, dass insgesamt 230 Datensätze gefunden wurden

Suchergebnis wie in Fiddle

Zweites Suchergebnis - & gt; Verschiedene Kategorien & amp; Zählen Sie aus 230 Datensätzen

  

CatId, CatName, TotalCountInSearch

Beispiel: 1 Bücher 25 & amp; 2 Sport 43 & amp; 8 Andere 52.   Show kann ich wie unten in UI zeigen

  • Alle Kategorien (120)
  • Bücher (25)
  • Sport (43)
  • Andere (52)

Und Drittes Suchergebnis - & gt; Verschiedene Städte & amp; Zählen Sie aus 230 Datensätzen

  

CityId, CityName, TotalCountInSearch

für die Anzeige unten in der Benutzeroberfläche

  • Alle Städte (10)
  • Chennai (4)
  • Banglore (3)
  • Andere (3)
  

Wie kann ich diese Zahlen und Namen wie alle Kategorien, Bücher abrufen?   Allcities usw.? Jede Hilfe oder Anregungen sind willkommen .

Hier klicken und SQL Fiddle anzeigen

Ich möchte diese Zählungen basierend auf den Suchkriterien erhalten. Ich möchte dies als ein weiteres Ergebnis aus meinem Verfahren abrufen.

MAIN UPDATE:

  

Ich habe alle Schema und tatsächliche dynamische Abfrage hier hochgeladen    Ссылка

    
Billa 02.03.2013, 06:34
quelle

4 Antworten

4

Versuchen Sie es. Ich hoffe, dies wird Ihre Erwartungen erfüllen.

%Vor%

SQL Fiddle Beispiel.

    
Amirthavalli 04.03.2013 13:37
quelle
3

Wie ich aus Ihren Kommentaren verstehe, denke ich, dass Sie brauchen bekommen 3 result sets by executing a single stored procedure . Außerdem möchten Sie wissen, ob die Abfragen optimiert sind.

Ich denke, Ihre vSequenz VIEW ist in Ordnung, so wie sie ist (also füge ich hier nicht zu meiner Antwort hinzu). Was Sie brauchen, ist create a stored procedure , um drei verschiedene Ergebnismengen using your view zu erhalten. Ich habe die Variablenliste, die Sie in der Geige deklariert haben, als Parameter für die gespeicherte Prozedur verwendet. Ich habe neben jeder Variable kommentiert. Da Ihre Filteranforderungen nicht klar sind, belasse ich sie so wie sie sind.

%Vor%

Im Folgenden wird beschrieben, wie die gespeicherte Prozedur in Management Studio ausgeführt wird (Bitte verwenden Sie die entsprechenden Werte für die Parameter):

%Vor%

Um diese gespeicherte Prozedur in Ihrem C# -Code auszuführen, verwenden Sie eine parametrisierte Abfrage mit einem DataAdapter wie folgt:

%Vor%     
Kaf 04.03.2013 16:40
quelle
1

Schließlich habe ich den folgenden SP erstellt und das Problem gelöst.

Bitte lassen Sie mich wissen, dass dies der richtige Ansatz ist?

  

Ich habe die temporäre Tabelle, Gruppierungs-SETS, Gruppierungs-ID

verwendet

Sie können den Code hier Ссылка

sehen %Vor%     
Billa 10.03.2013 12:26
quelle
0

Dies ist zum Abrufen der Zählbasis auf Kategorien

%Vor%

Dies ist zum Abrufen der Anzahl basierend auf Stadt

%Vor%     
Saksham 02.03.2013 07:54
quelle