J'ai une table: et une deuxième table: p> J'ai besoin d'avoir une table: p> Comment puis-je atteindre la table finale?
Rev A est pour les versions 1-3, REV B est versions 4-7, Rev C est versions 5-13.
Si j'essayais de faire cela avec VB Excel, j'ajouterais un 1 dans une nouvelle colonne. Ensuite, obtenez la première valeur Vers (3) - Second Valeur Vers (7), puis sur la sortie 4 ....
Ensuite, j'utiliserais une certaine logique si <= nouvelle colonne et> = Vers Write Rev.
Je ne sais pas comment faire cela dans SQL et je dois! P> p>
4 Réponses :
Utiliser ceci obtient la version "suivante" dans externe Appliquer code>: Tablef code> par rapport à chaque version de code>. p> p>
Vous pouvez également faire cela avec une sous-requête:
SELECT * , (SELECT TOP 1 b.rev FROM Table1 b WHERE a.version <= b.vers ORDER BY b.vers) FROM Table2 a
ou une troisième version:
declare @t1 table(V int, R char(1))
insert @t1 values (3,'A'),(7,'B'),(13,'C')
declare @t2 table(I char(3), V int)
insert @t2 values ('aab',1),('adr',2),('bhj',3),('bgt',4),('nnh',4),('ggt',7)
select t2.*, t1.R
from @t2 t2
join @t1 t1 on t1.V>=t2.V and not exists(select * from @t1 t3 where t3.V>=t2.v and t3.V<t1.V)
Essayez ceci que vous pouvez le faire en joignant des tables
Cela ne va pas fonctionner - cela n'attribuera que T1.REV aux versions 3, 7, 13 ... etc.
Vous pouvez essayer ceci si cela ne fonctionne pas Sélectionnez T2.INFO, T2.Version, T1.REV à partir de TABLE2 T2 JOIN TABLE1 T1 ON (T2.Version = T1.VERS)
Quelle est la logique qui détermine la troisième colonne de la table de sortie?
Je vous suggérerais de lire ce premier: Stackoverflow.com/help/how-to-ask . Vous devriez vraiment donner un peu plus de contexte.
Voulez-vous dire que REV C est 8-13?