J'ai 2 tables individuelles (IndividualId est la clé primaire) et IndividualAudit. Chaque fois que la mise à jour est effectuée sur la table individuelle l'enregistrement va à la table d'audit. Il y a beaucoup de colonnes qui peuvent être modifiées, mais je ne m'intéresse qu'à ramasser des enregistrements où le SSN est modifié. Je suis à l'aide ci-dessous requête:Aide à la requête pour suivre les mises à jour quotidiennes apportées à la table (pour une colonne spécifique)
Select DI.IndividualId,DI.ssn FRom Individual I
INNER JOIN IndividualAudit A
ON(I.IndividualId = A.IndividualId and A.UpdateDate = GETDATE())
where i.updatedate = GETDATE() and I.ssn <> a.ssn
group by I.IndividualId,I.ssn
Quelqu'un peut-il s'il vous plaît me dire si mon approche est correcte.
En fait, je recherche sur Google et a eu peur regardant lien ci-dessous: Query help when using audit table
la personne qui a répondu requête similaire sur ce post semblent être très bon avec sql et en comparant avec sa réponse mon approche semble tout à fait naïve . donc je veux juste savoir où je me trompe dans ma compréhension.
Merci beaucoup
En supposant 'GETDATE' retourne l'heure actuelle, il semble que ce serait seulement obtenir des lignes qui étaient modifiées en ce moment (c.-à-probablement pas). De plus, si la ligne était mise à jour, pourquoi le 'SSN' serait-il différent? Je ne suis pas sûr de ce que les données vont dans la table d'audit - est-ce la valeur précédente de la rangée ou la valeur actuelle (comme mise à jour)? – Mikeb
Salut Mike ... pour getdate() je vais utiliser CONVERT (VARCHAR (10), mydatecol, 110) pour comparer uniquement les dates. La valeur précédente de ligne va à la table d'audit. (il n'y a pas de nécessité ssn devrait différer.Si seulement ssn a différé, je veux choisir la ligne c'est pourquoi <> vérifier) – user2159471