Ich habe eine Tabelle mit Übersetzungen (Beispiel vereinfacht):Eine knifflige Abfrage - eine Art von verschiedenen
Diejenigen GroupId = 0 mit global sind, diejenigen, die eine GroupId mit> 0 sind für diese Gruppe spezifisch.
ID(BitInt), TranslationId(BigInt), GroupId(BigInt), Translation(VarChar(100)
1 1 0 'Hello'
2 1 20 'Hi there'
3 1 25 'Hi'
4 2 0 'Goodbye'
5 3 20 'See you'
6 3 25 'See Ya'
7 4 25 'Well well'
Ich brauche für eine bestimmte Gruppe von diesem wählen mir geben:
Wenn ein Datensatz mit dem richtigen GroupId existiert dann, dass man sonst die global mit GroupId = 0
So kann sagen, ich mache eine Abfrage mit GroupId 20 = Es zurückkehren sollte
2,1,20,'Hi there'
4,2,0,'Goodbye'
5,3,20,'See you'
Und eine Abfrage mit GroupId = 25
3,1,25,'Hi'
4,2,0,'Goodbye'
6,3,25,'See Ya'
7,4,25,'Well well'
Und eine Abfrage mit GroupId = 37
1,1,0,'Hello'
4,2,0,'Goodbye'
Hope this irgendeine Art von Sinn gibt, und Dank im Voraus :)
Nur um sicherzugehen - GroupId 0 alle möglichen Datensätze enthält? –
es ist nur eine grundlegende where-Klausel: GroupdID = @ testGroup ODER GroupID = 0 –
Eigentlich ist es nach TranslationId gruppiert. Es kann TranslationId geben, die nicht mit GroupId 0 als 3 und 4 in dem Beispiel vorhanden sind. Einige sind nur mit einer einzigen GroupId als 4 im Beispiel vorhanden. Einige sind nur mit GroupId 0 – Beaker