Ich bin mir nicht sicher, wie ich das genau erklären soll, aber Imaging haben Sie eine Tabelle mit vielen booleschen Feldern wie dieser ...
Tabelle: Autos
Spalten:
Automatisch: Boolesch
Silber: Boolesch
Amerikanisch: Boolesch
Laut: Boolesch
Smelly: Boolesch
schnell: Boolesch
(dumme Felder und die meisten von ihnen wären in Wirklichkeit keine Boole, sondern nur ein Beispiel)
Was ich tun muss, ist eine Liste dieser Felder mit einer Reihe von Suchergebnissen neben jedem einzelnen zu erstellen. Wenn also 100 silberne Autos in der Datenbank und 57 amerikanische Autos wären, könnte die Liste ein bisschen so aussehen. .
Automatisch: (150)
Silber (100)
Amerikaner (57)
Laut (120)
Smelly (124)
schnell (45)
Also, es ist im Grunde wie eine Liste von Filtern, wenn der Nutzer auf "Silber" klickt, wird die Suche auf nur silberne Autos beschränkt und sie wissen, dass sie 100 Ergebnisse erhalten werden. Die Zahlen neben allen anderen Filtern werden dann kleiner, weil wir alle Autos herausgefiltert haben, die kein Silber sind.
Das Vorkommen eines Feldes zu zählen wäre einfach ...
SELECT COUNT (*) VON CARS WHERE Automatisch = true;
... würde mir zum Beispiel die erste Zeile geben. Aber ich möchte nicht für jedes Filter eine SQL-Anweisung machen müssen, da es über 30 davon geben könnte. Ich habe viele Websites gesehen, die das tun, also muss es einfacher sein, als ich denke.
Jede Hilfe würde wirklich geschätzt werden:)
Jon
Angenommen, das Bit ist 1/0, dann können Sie SUM statt COUNT:
%Vor%Bei SQL Server 2008, wenn versucht wird, ein Feld mit Datentypbit zu summieren, tritt der folgende Fehler auf:
Msg 8117, Ebene 16, Status 1, Zeile 10
Bit des Operanden-Datentyps ist ungültig für Summenoperator.
damit du es versuchen kannst:
%Vor%Wenn es nicht bereits 1/0 ist, können Sie basierend auf dem wahren Wert Folgendes tun:
%Vor%Tags und Links sql sql-server sql-server-2005 tsql