J'ai essayé de chercher ceci, mais je n'ai aucune idée de comment l'exprimer correctement, donc j'espère que quelqu'un ici pourrait être en mesure d'aider.SQL Server: combiner daterange et la liste des codes de produit
J'ai deux tables, produit et daterange.
CREATE TABLE product
(
Code varchar(50) NOT NULL,
Price money
);
CREATE TABLE daterange
(
yyyymm varchar(6) NOT NULL
);
INSERT INTO product (Code, Price)
VALUES ('10001J',3.68), ('10002K',7.23), ('10003L',4.72);
INSERT INTO daterange (yyyymm)
VALUES (201507),(201508),(201509),(201510);
La liste que je veux produire est ceci:
YYYYMM Product
---------------
201507 10001J
201507 10002K
201507 10003L
201508 10001J
201508 10002K
201508 10003L
201509 10001J
201509 10002K
201509 10003L
201510 10001J
201510 10002K
201510 10003L
Fondamentalement, créer une combinaison de tous les produits et toutes les dates. Je n'ai aucune idée si j'ai même besoin de la table Daterange, ou si cela peut être fait avec du code seul. Et oui, je pourrais créer la combinaison dans Excel ou autre chose, mais j'espère la construire dans une requête dynamique plus grande.
Merci à l'avance :)
Que diriez-vous d'un 'CROSS JOIN'? –
Et maintenant je me sens comme un idiot. Merci Félix. Je n'ai pas rencontré celui-là avant :) –
'Je n'ai aucune idée si j'ai même besoin de la table de Daterange' À cet égard, une table de dates n'est pas une mauvaise chose à avoir en main, IMO (bien que avec des dates réelles , pas varchars - il est facile de les convertir pour vos besoins plus tard). Vous pouvez ensuite sélectionner la plage de dates dont vous avez besoin dans cette table sans avoir à la créer à chaque fois. La même chose avec une table de nombres. – ZLK