Einzelnen Beitrag anzeigen

e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
156 Beiträge
 
Delphi 6 Enterprise
 
#1

SQL ORDER BY mit Bitoperation

  Alt 6. Dez 2013, 13:11
Datenbank: MS Access • Version: 2003 • Zugriff über: ADO
Hallo!

Vielleicht kann mir jemand bei folgendem Problem helfen. Eine MS Access-Datenbank mit einer Tabelle namens BENUTZER mit drei Feldern.
1. ID
2. Benutzer
3. Berechtigung (Bit 1-Admin, Bit 2-Benutzer, Bit 3-Programmierer) - Mehrfachnennung möglich!

Die Abfrage funktioniert bezüglich der Bitoperationen wie gewünscht:
Code:
SELECT BENUTZER.Benutzer
FROM BENUTZER
WHERE (BENUTZER.Benutzer="Thomas") OR (BENUTZER.Berechtigung & 1>0) OR (BENUTZER.Berechtigung & 4>0);
Jetzt bräuchte ich in dieser Abfrage allerdings auch eine zusätzliche Spalte Sortierung anhand die abgefragten Berechtigungsbits abgebildet und nach denen sortiert werden soll:
Code:
SELECT BENUTZER.Benutzer, (INT([BENUTZER].[Berechtigung] & 1) + INT([BENUTZER].[Berechtigung] & 4)) AS Sortierung
FROM BENUTZER
GROUP BY BENUTZER.Benutzer, Sortierung
HAVING (BENUTZER.Benutzer="Thomas") OR (BENUTZER.Berechtigung & 1>0) OR (BENUTZER.Berechtigung & 4>0)
ORDER BY Sortierung;
Doch statt 1, 4 oder 5 steht im Feld Sortierung immer "14", also der Text "1" und "4" zusammen.

Wie kann ich die Summe dieser Bitoperation erhalten?

Gruß
e-gon
  Mit Zitat antworten Zitat