2010-09-15 4 views
0

J'ai une table SQL Server CE avec une colonne de date. Une date donnée peut avoir un ou plusieurs enregistrements. Mon client souhaite que le formulaire de saisie prenne par défaut la date suivante (à partir de et incluant la date actuelle) qui n'a pas encore d'enregistrement. J'ai du mal à envelopper ma tête autour d'une requête pour accomplir ceci. Googling J'ai trouvé quelques extraits, mais ils utilisent tous des procédures stockées ou des fonctions définies par l'utilisateur qui ne sont pas disponibles dans SQL Server CE.Trouver la prochaine date disponible

Est-il possible de le faire sans créer de boucle dans le code avec plusieurs appels de base de données?

+1

« la prochaine date », comme dans une seconde, minute, heure, jour, etc. passé l'existant? –

Répondre

2

Je ne peux pas être sûr que SQLCE permet à tous cette syntaxe, mais dans la requête T-SQL comme suivant travaillerais:

select dateadd(d, 1, min(t1.mydatefield)) 
from mytable t1 
left join mytable t2 on datediff(d, t1.mydatefield, t2.mydatefield)=1 
where t1.mydatefield>=getdate() and t2.mydatefield is null 
+1

Belle solution. Juste un problème mineur. Les entrées DATEADD sont hors séquence. Devrait être 'dateadd (d, 1, min (t1.mydatefield))' – bobs

+0

Merci de le remarquer, corrigé maintenant. – Arvo

+0

Cela a fonctionné un régal. Merci. –

Questions connexes