|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
Bonjour,
Après avoir recherché et galéré pas mal de temps je reste sans solution à mon problème. J'exécute sous SQL Serveur des procédures stockées qui me génèrent des résultats dans un fichier XML (via BCP) qui est ensuite utilisé pour faire du repporting. Ces procédures vont récupérer des informations dans diverses bases de données historisant ce qui se passe la semaine. Or lorsque mes bases de données sont vides (en début de semaine) mes querry n'affectent aucunes colonnes, le fichier XML généré et vide/corrompu et fait planter ma vue de repporting. J'ai essayé de faire des SELECT imbriqués, et des CASE pour forcer une colonne à zéro si il n’y a pas de résultat mais cela ne marche pas, connaissez vous une autre solution??? Extrait de la querry : Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() |
Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
00
|
|
|
#3 | |||||||||||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
Citation:
Citation:
Si on calcule la date du premier jour de la semaine et qu'on met zéro pour la somme, ça vous convient ? Soit alors la table suivante : Code :
Code :
Code :
Maintenant, purgeons la table avec : Et réexécutons la requête : on obtient alors : 2011-03-28 00:00:00.000 0 Citation:
Pour faire ça proprement, vous pouvez donc écrire : Code :
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|||||||||||||
|
00
|
|
|
#4 |
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
Merci pour votre réponse rapide, je test tout ça demain matin au boulot, je vous tiens au courant !!!
Au niveau du WHERE j'ai fais de cette façon car le mois de la colonne date est formaté comme suit : "03" alors que le ma variable @TKMOIS renvoie juste "3". Le DATEPART(month,Date) me permet de renvoyer la valeur "3" comme pour la variable @TKMOIS. Je vous posterais (par curiosité) demain matin l'élaboration de mes variables @TKXX (c'est une usine à gaz mais j'ai pas trouvé plus simple Nicolas. |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
Citation:
A part ce petit soucis, Xcelsius reste un outils vraiment pratique et ergonomique, je le conseil aux personnes créant des vues de repporting. |
|||
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
Voici l'élaboration de mes variable; le but étant de sélectionner les dates de la semaine chaque semaine, le correctif servant a afficher les dates pour les semaines à cheval sur 2 mois.
Code :
|
||
|
|
00
|
|
|
#7 | |||||||||
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
Citation:
Nicolas. |
|||||||||
|
|
00
|
|
|
#8 | |||||||||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
vous semblez gérer les semaines à cheval sur deux mois, mais celles à cheval sur deux années ? Et les années bisextiles (WHEN 3 THEN (28)... ) ? De plus, pour votre formatage, il semble y avoir une espace entre le mois et le point pour les mois sur un chiffre. Est-ce normal ? Pour obtenir le lundi de la semaine en cours, vous pouvez faire comme ceci : Code SQL :
et donc, je pense que vous pouvez calculer votre @TKO simplement comme ça : Code SQL :
ou bien comme ceci, dédicacée à ElSuket pour la manipulation des dates avec des fonctions date exclusivement Code SQL :
Qui est peut-être plus lisible ainsi : Code SQL :
Bien sûr à chaque fois avec un |
|||||||||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
Grand merci a vous, je pense que l'on cloturer sujet, mais il faut que je trouve comment
|
|
|
00
|
|
|
#10 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Citation:
Code :
SELECT CONVERT(char(10), DATEADD(week, DATEDIFF(week, 0, GETDATE()), 0), 102) @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
sauf qu'il ne veut pas les 0 non significatifs en début de mois (et de jour ?) :
Il ne veut pas Citation:
Citation:
|
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Nicolas Inscription : mars 2011 Messages : 22 ![]() |
C'est juste, le formatage avec les zérso était une contrainte, merci pour vos solutions.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com