Fråga : T-SQL: Få räkningen av det giltigt/strömmen 1: N hänvisar till, som retur sätter in

Hälsningar

I har en skötsel för lagrat tillvägagångssätt för T-SQL på ms, SQL- somserveren 2005.


That är mitt existerande och funktionsdugliga lagrade tillvägagångssätt, jag måste att fördjupa med ett annat särdrag: class= " lineNumbers " >
1 för > FÖRÄNDRAR TILLVÄGAGÅNGSSÄTTET [dbo]. [Get_OUAufsatz]
      mer uniqueidentifier @InternalOUID     
      , @asOfDate som datetime = ogiltigt
    SOM
    BÖRJA

      UPPSÄTTNING NOCOUNT PÅ;
      OM @asOfDate är ogiltig
            FASTSTÄLLD @asOfDate = getdate ()
      VÄLJ [AufsatzId]
                  , [H_ValidSince]
                  , [H_ValidUntil]
                  , [H_UID]
                  , [InternalOUId]
                  , [Test1]
                  , [Test2]                           
             
            FRÅN [dbo]. [OUAufsatz]
            VAR
                  [InternalOUId] = @InternalOUID
                  OCH @asOfDate BETWEEN [dboen]. [OUAufsatz]. [H_ValidSince]
                  OCH [dbo]. [OUAufsatz]. [H_ValidUntil]
<-/pre>

: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: class= " prettyprint " för id= " codeSnippet831118 " för >

The för >
ovanför SP går en lista av OUAufsatz tillbaka, anmärker/ror som tillfredsställer var clause.
That är en lätt query…

Now jag måste att fördjupa queryen. Kodifiera är efter en kodifierasnippet som fungerar fint för honom, men jag måste att integrera dess funktionsduglighet in i det ovannämnda lagertillvägagångssättet Get_OUAufsatzwerte: class= " lineNumbers " >
1 för > INRE SAMMANFOGAR (
    VALD räkning (*) SOM [räkningen], Assessment.AufsatzId
                                   FRÅN bedömning
                                   INRE SAMMANFOGA OUAufsatz
                                   PÅ Assessment.AufsatzId = OUAufsatz.AufsatzId
                                   OCH OUAufsatz.H_ValidUntil = ”3000-01-01”,
 
                                   VAR Assessment.H_ValidUntil = ”3000-01-01”,   
                                   GRUPP VID Assessment.AufsatzId
                          ) SOM KARTLÄGGER
                  PÅ KARTLÄGGA. [AufsatzId] = [OUAufsatz]. [AufsatzId]
<-/pre>

för


: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: class= " prettyprint " för id= " codeSnippet831119 " för >




What är den H_ValidSince och H_ValidUntil alls? förklarings=>

We historize varje ändring i databasen som hjälpmedlet, om några sätter in i e.g. OUAufsatzen bordlägger ändras ett mellanlägg/en uppdatering skrivar utförs, som kontrollerar, om en Aufsatz dataset/ror med bestämda H_ValidSince, och bestämda H_ValidUntil värderar är redan existerande. Om ja H_ValidSincen sätter in får datetime.nowen värderar, och H_ValidUntilen sätter in får värdera ”3000-01-01” som hjälpmedlet, som dataseten/ror, är strömmen/faktiskt ror. Om ingen någon annat stoppar göras… dess rättvist en historizemetod att spåra allt hehe.

And, om du ser nu ovanför kodifierasnippeten, och jämför mig dig ser att jag filtrerar till strömmen/den faktiska bedömningen och OUAufsatz.

Now som jag behöver den min sammanslutningen kodifierar snippeten med det ovannämnda lagertillvägagångssättet med stoppar något liknande som

PSEUDO kodifierar: för

class= " lineNumbers " >
1 för > VÄLJER [AufsatzId]
                  , [H_ValidSince]
                  , [H_ValidUntil]
                  , [H_UID]
                  , [InternalOUId]
                  , [Test1]
                  , [Test2]                           
               , gå tillbaka [b] [räkningen] om 0 falska annat true därefter som [IsInUse] [/b]
            FRÅN [dbo]. [OUAufsatz]
            VAR
                  [InternalOUId] = @InternalOUID
                  OCH @asOfDate BETWEEN [dboen]. [OUAufsatz]. [H_ValidSince]
                  OCH [dbo]. [OUAufsatz]. [H_ValidUntil]
<-/pre>


and som kodifierasnippetmusten kombinerade med den existerande SPen-code.

My, tillverkar här mig förväntar i i tabellform bildar är denna (synliga kolonner i användaren har kontakt):

Test1…: … Test2…: … IsInUse (boolen sätter in akacheckboxen),

The förhållande är att 1 OUAufsatz kan ha förmiddagen för många bedömningar som men I-intresseras endast i bedömningen som är current-/VALIDhjälpmedel H_ValidUntil = ”3000-01-01”. hjälp för

Any uppskattas:),

If du behöver mer något att säga för info precis, I-försök att hjälpa så mycket, som jag kan!
" klar "

Svar : T-SQL: Få räkningen av det giltigt/strömmen 1: N hänvisar till, som retur sätter in

notera att det måste LÄMNAS sammanfogar, annorlunda de som är ”inte i bruk” som ska för att inte gås tillbaka…,
Andra lösningar  
 
programming4us programming4us