Obtenir Tous les record de particulier les mois de Construction de la Requête SQL
J'ai besoin d'aide pour construire des Requêtes SQL. J'ai le tableau de données comme:
ID Date Name
1 1/1/2009 a
2 1/2/2009 b
3 1/3/2009 c
J'ai besoin pour obtenir le résultat de quelque chose comme...
1 1/1/2009 a
2 1/2/2009 b
3 1/3/2009 c
4 1/4/2009 Null
5 1/5/2009 Null
6 1/6/2009 Null
7 1/7/2009 Null
8 1/8/2009 Null
............................
............................
............................
30 1/30/2009 Null
31 1/31/2009 Null
Je veux requête quelque chose comme..
Select * from tbl **where month(Date)=1 AND year(Date)=2010**
Ci-dessus n'est pas remplie de la requête.
J'ai besoin d'obtenir tout le dossier du mois en particulier, même si une date manquante..
Je suppose qu'il doit être équi Rejoindre dans la requête, je suis en train de construire cette requête à l'aide d'Equi rejoindre
Grâce
- Ok, je pense que je sais ce que vous êtes après, ici et maintenant. Vous voulez toutes les dates en un mois, même si elles n'existent pas dans votre tableau?
- voir ci-dessous. N'ont pas accès à SQL 2005 droit maintenant, mais vous en 30 minutes environ. Si il n'y a rien de mal avec cette question, laissez-moi savoir.
Vous devez vous connecter pour publier un commentaire.
BIG MODIFIER
Maintenant comprendre la Fpo question.
Utiliser une expression de table commune et un left join pour obtenir cet effet.
Gauche cette réponse originale à cette question, au fond,
Vous avez besoin DATEPART, monsieur.
Si vous voulez choisir le mois et l'année, puis vous pouvez utiliser DATEPART deux fois ou aller pour une gamme.
Gamme :-
Voir ce lien pour plus d'info sur DATEPART.
http://msdn.microsoft.com/en-us/library/ms174420.aspx
Vous pouvez utiliser moins ou égal à.
Comme suit:
Cependant, il est difficile de savoir si vous voulez 1 mois de toutes les années?
Vous pouvez cocher plus d'exemples et de fonctions sur "Fonctions de Date et Heure" à partir de MSDN
Créer une table temporaire contenant tous les jours de que certaines mois de,
Faire une jointure externe gauche entre la table et de votre tableau de données sur tempTable.mois = #mois.
maintenant, vous avez une grande table avec tous les jours du mois et tous les enregistrements qui correspondent aux bonnes dates + vide enregistrements de ces dates qui n'ont pas de données.
j'espère que c'est ce que vous voulez.