J'ai 2 tables (?):complexe SQL requête de jointure
1) Table Masterdates qui contient toutes les dates depuis le 1er janvier 1900
2) Table Stockdata qui contient des données de stock à la date sous forme , symbole, ouvert, haut, bas, à proximité, volume (clé primaire = date symbole)
C'est ce que je cherche à récupérer (présenté ici au format CSV)
mdate, sdate, Symbole, open , High, ...
6/4/2001,6/4/2001, Foo, 47,49, ...
6/5/2001, null, null, null, null, ...
6/6/2001,6/6/2001, Foo, 54,56, ...
où MDate provient de Masterdates et SDate provient de Stockdata. J'ai besoin que la sortie commence par la première (la plus ancienne) extension du symbole souhaité (dans cet exemple, Foo, à partir du 6/4/2001) dans Stockdata, puis inclue toutes les dates des Masterdates jusqu'à la dernière (dernière) date disponible pour le symbole souhaité dans Stockdata, produisant des valeurs nulles lorsqu'il n'y a pas d'enregistrement Stockdata correspondant pour un enregistrement Masterdate donné dans la plage décrite.
Existe-t-il un moyen de le faire en une seule requête, une série de requêtes, et/ou en ajoutant des tables auxiliaires, ce qui donnera des résultats rapides? Ou devrais-je vider les super-ensembles de ce que je veux, puis construire la sortie finale en utilisant mon langage de programmation (non-SQL)?
TIA
Quel système SQL exactement? MS SQL Server? MySQL? –