|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() ![]() |
Salut communauté !
à la base j'ai cette requête : Code :
dans les colonnes 2 et 3 je voudrais avoir le nombre de ligne du dernier mois quelque soit la période de référence, est-il possible de les avoir dans la même requête ? Merci par avance.
__________________
Bon courage ou Bonne Chance (selon le contexte) |
||
|
|
00
|
|
|
#2 | |||
|
Membre Expert
![]() ![]() |
Re,
j'ai essayé avec une requête imbriquée mais j'ai eu un message d'erreur. voici la requête : Code :
Citation:
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|||
|
|
00
|
|
|
#3 | ||||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
salut
tu as repéré le problème : la sous-requête Code :
Il faut mettre ce GROUP BY dans la requête principale (ce qui est déjà le cas). Mais juste une WHERE Code :
|
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
Merci mon ami c'était ça en effet.
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
00
|
|
|
#5 | |||
|
Membre Expert
![]() ![]() |
Re,
dans la même requête j'ai une colonne que je calcul ainsi : Code :
Citation:
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|||
|
|
00
|
|
|
#6 | |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
as tu vérifié le format de la colonne :
Citation:
penses au CAST pour avoir le même type de format Code :
CAST(Extract(year FROM :date_fin) AS ????) |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() |
la colonne "annee_comparaison" est de type varchar.
j'ai mis un cast comme suggérer Code :
tb_commune_pop_lin.annee_de_comparaison = cast(Extract(year FROM :date_fin) AS varchar(4))
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Et quel est le type de Date_Fin ?
parce que si ce n'est pas un champs "Date".... |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() |
et comment savoir le type d'une variable dans une requête ?!
je crois avoir lu quelque part que les variables d'une requêtes sont par défaut de type varchar, est-ce exact ?
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Non pas du tout, il dépend du contexte de la requête.
Dans une PS, c'est déterminé dans la déclaration de la variable. Dans delphi, on définit le type dans l'envoi des paramètres. Pour être sur, tu peux caster la variable en lui affectant explicitement le type INTEGER |
|
|
00
|
|
|
#11 | |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Citation:
Faudrait pas tirer trop sur la corde, elle risque de casser.
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() ![]() |
Citation:
c'est une requête simple pas une PS, donc pas la peine de rafler n'importe où et n'importe comment. NB : je suis très sérieux, oui
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
|
00
|
|
|
#13 |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
PS ou pas PS c'est toi qui définie le type de la variable, donc ma remarque aussi gratuite soit-elle est valable et elle n’était pas destinée a offenser.
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() |
ok merci, j'ai donné le code dans mon 1er post j'aimerais bien savoir où dois-je définir ma variable car honnêtement je ne sais pas dans quelle partie du code SQL ça se définie ?
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Si tu as écrit ta requête dans un composant (Delphi ?) celui-ci a sûrement une propriété "Params" ou équivalente où tu retrouveras tes paramètres et là tu définis pour chacun son type par la propriété "DataType" ou équivalente.
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() |
Merci TryExceptEnd mais tu ne me suis pas ! si j'avais un problème avec Delphi je l'aurais poster sur les forums delphi !! depuis tout le début je ne cesse de parler de SQL indépendamment du langage haut niveau que je vais utilisé plus tard.
L'erreur obtenue signifie que la fonction Extract du code SQL n'est appliquée que pour les champs or moi j'ai voulu l'utilisé sur une variable. donc, en d'autres termes comment puis-je passé uniquement l'année sachant que ma variable elle comporte la date toute entière ?
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
00
|
|
|
#17 |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Désolé, mais c'est vrai j'ai sauté quelques lignes.
Comme Firebird ne connait pas le type de la variable, il suffit de le lui spécifier par un CAST. Code :
tb_commune_pop_lin.annee_de_comparaison = CAST(EXTRACT(YEAR FROM CAST(:date_fin AS DATE)) AS VARCHAR(4))
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
00
|
|
|
#18 | |
|
Membre Expert
![]() ![]() |
Citation:
1. forcer date_fin à être de type date 2. convertir en varchar merci TryExceptEnd
__________________
Bon courage ou Bonne Chance (selon le contexte) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com