Récemment, un utilisateur très sympathique sur stackoverflow m'a aidé avec ce SQL:une longue extension SQL avec des jointures internes (serveur 2000)
SELECT (SELECT TOP 1
a.id
FROM vAnalysesHistory AS a
WHERE a.companyid = n.stockid
ORDER BY a.chosendatetime DESC) AS id,
n.name,
(SELECT TOP 1
a.chosendatetime
FROM vAnalysesHistory AS a
WHERE a.companyid = n.stockid
ORDER BY a.chosendatetime DESC) AS chosendatetime
FROM vStockNames AS n
Ce qui fonctionne très bien. Maintenant, je veux étendre ce SQL. Dans la table vAnalysesHistory, il y a un attribut appelé analytique. Je voudrais seulement obtenir des lignes avec analyid = 3 par exemple.
Mon essai:
SELECT (SELECT TOP 1
a.id
FROM vAnalysesHistory AS a
WHERE a.companyid = n.stockid AND analyseid = 3
ORDER BY a.chosendatetime DESC) AS id,
n.name,
(SELECT TOP 1
a.chosendatetime
FROM vAnalysesHistory AS a
WHERE a.companyid = n.stockid AND analyseid = 3
ORDER BY a.chosendatetime DESC) AS chosendatetime
FROM vStockNames AS n
Le problème est que il ny a pas des analyses avec analyseid = 3 pour chaque ligne de vStockNames. Par conséquent certaines des lignes renvoyées a null dans id et chosendatetime.
Pouvez-vous m'aider? Je ne veux lignes où il existe et avec Analysons analyseid par exemple analyseid = 3.
Et oh vous, le serveur est 2000.
Merci à l'avance