Requete [Résolu]

Messages postés
20
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
8 juin 2012
- - Dernière réponse : abmail
Messages postés
20
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
8 juin 2012
- 8 juin 2012 à 13:50
Bonjour à tous,

Pour commencer je suis sous CF MX7 datasource Access
J'ai une table access MaTable qui contient 2 champs date : dateModif et dateCreation.

je cherche a faire cette requete SQL :

<cfquery name="MySelect" datasource="MyDatasource">
SELECT *, #DateDiff('n',MaTable.dateModif, Matable.dateCreation)# AS LaDifference FROM MaTable
ORDER BY LaDifference, MaTable.dateCreation desc
</cfquery>

Resultat : Element dateModif is undefined in MaTable.

Meme resultat si je fais :

<cfquery name="MySelect" datasource="MyDatasource">
SELECT *, #DateDiff('n',dateModif,dateCreation)# AS LaDifference FROM MaTable
ORDER BY LaDifference, dateCreation desc
</cfquery>

Si j'enleve les dieses, j'obtient :
<cfquery name="MySelect" datasource="MyDatasource">
SELECT *, DateDiff('n',dateModif,dateCreation) AS LaDifference FROM MaTable
ORDER BY LaDifference, dateCreation desc
</cfquery>
Resultat : Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.

Pareil si je precise la table
<cfquery name="MySelect" datasource="MyDatasource">
SELECT *, DateDiff('n',MaTable.dateModif,MaTable.dateCreation) AS LaDifference FROM MaTable
ORDER BY LaDifference, dateCreation desc
</cfquery>
Resultat : Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.

Quelqu'un aurait une idee de la syntaxe sql a ecrire, parceque quelque soit la syntaxe, ca plante ?

merci de votre reponse

ou alors une autre astuce pour arriver à une liste un peu speciale, car c'est bizarre ce que j'essaye de faire, je m'explique :

J'affiche une liste triée par dateCreation DESC
Par defaut la dateModif est egale a dateCreation s'il n'y a pas (encore) eu de modification sur cet enregistrement. En cas de modif, le champ dateModif prend la valeur du jour et de l'heure en cours (now), dateCreation ne change jamais !

Numero / Date Creation / Date Modification

1 / 07/06/2012 10h00 / 07/06/2012 10h00
2 / 07/06/2012 09H00 / 07/06/2012 09H00
3 / 07/06/2012 08H50 / 07/06/2012 08H50
4 / 06/06/2012 09H00 / 06/06/2012 09H00
5 / 06/06/2012 08H00 / 06/06/2012 08H00
6 / 05/06/2012 09H00 / 05/06/2012 09H00
7 / 04/06/2012 07H00 / 04/06/2012 07H00

C'est la ou ca se complique, lorsque je modifie 4/ par exemple, j'aimerais que cette MEME liste s'affiche tel que ci-dessous :

1 / 07/06/2012 10h00 / 07/06/2012 10h00
2 / 07/06/2012 09H00 / 07/06/2012 09H00
3 / 07/06/2012 08H50 / 07/06/2012 08H50
4 / 06/06/2012 08H00 / 06/06/2012 08H00
5 / 05/06/2012 09H00 / 05/06/2012 09H00
6 / 04/06/2012 07H00 / 04/06/2012 07H00
7 / 06/06/2012 09H00 / 07/06/2012 14H00

puis par exemple, je modifie 3/ ca doit donner :

1 / 07/06/2012 10h00 / 07/06/2012 10h00
2 / 07/06/2012 09H00 / 07/06/2012 09H00
3 / 06/06/2012 08H00 / 06/06/2012 08H00
4 / 05/06/2012 09H00 / 05/06/2012 09H00
5 / 04/06/2012 07H00 / 04/06/2012 07H00
6 / 06/06/2012 09H00 / 07/06/2012 14H00
7 / 07/06/2012 08H50 / 07/06/2012 14H22


En fait l'idee est de trier la liste par ordre de creation (donc a traiter) puis une fois l'enregistrement modifié, celui-ci passe directement en dernier dans la liste. Donc je recherche une solution SLQ sous coldfusion pour permettre ce type de liste sachant que je ne dispose que de 2 champs dateCreation et dateModif

J'espere que c'est assez comprehensible ???
Si quelqu'un a une idee, je suis preneur

en vous remerciant d'avance...
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 octobre 2019
136
1
Merci
Bonjour,

Sujet renommé.

Je ne fais pas de ColdFusion, mais je pense que "Trop peu de paramètres. 1 attendu" t'indique que tu t'es trompé dans le nom d'un champ (donc qu'il assimile à un paramètre).
Essayes avec Access pour voir où est l'erreur.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
20
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
8 juin 2012
1
1
Merci
ok j'ai donc trouve une astuce en modifiant ma table

1/ j'ai ajouter un champ flagmodif (oui/non)
2/ j'ai mis toutes les datemodif au 01/01/1970

donc je modifie flagmodif a 1 et datemodif a now en cas de modification

et la requete de ma liste est toute simple (finalement)

SELECT * FROM matable
ORDER BY flagmodif, datemodif, datecreation desc

et j'obtiens ce que je veux...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de abmail
Messages postés
20
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
8 juin 2012
1
0
Merci
bonjour et merci pour ta reponse

non justement, il n'y a pas de logique a ce bug de requete via le cfquery de coldfusion, en fait cf ne considere pas que dateModif et dateCreation sont des champs de la table et les prend pour des variables et bien entendu comme elles n'existent pas en tant que variables alors cela provoque l'erreur "Element dateModif is undefined in MaTable"

Dans le 2eme cas, et etant donne que je n'entoure pas par des dieses l'expression "DateDiff", cela provoque une autre erreur...

Je pense que le cfquery est "buggé" car je ne vois pas d'autres explications pour l'instant, je continu a chercher...

sinon je reitere ma demande concernant la liste (2eme point) si quelqun a une idee de la maniere a proceder, elle serait la bienvenue

merci encore
Commenter la réponse de abmail