Petit problème avec clause SELECT [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 22-09-2005 à 13:44:24
e."description" |
Marsh Posté le 22-09-2005 à 13:45:46
Je dirais qu'il ne faut pas de champs non varchar dans le order ou le group qui doit faire pour grouper une comparaison.
Marsh Posté le 22-09-2005 à 14:33:08
re!
ben qd je fais ca:
Code :
|
il me dit:
Code :
|
C'est à choix, mais y'a tjs 1 erreur ou l'autre
et pour le e."description" ben en fait 'description' est un terme réservé apparemment (il se met en bleu!) et si je mets les "", ca marche.
Marsh Posté le 22-09-2005 à 14:46:12
tu as essayé un truc genre:
Code :
|
un truc qui arrive aussi si tu envoyes ton instruction sur un lien odbc, c'est que pour certaines opérations il soit sensible a la casse, le mieux est de faire un desc Events; et voir ce qu'il te retourne et l'écrire de la même façon
Marsh Posté le 22-09-2005 à 15:01:39
Quand on fait un GROUP BY, c'est pour grouper les données.
Par conséquent, SQL attends que les autres informations à renvoyer soient des MAX, MIN, SUM, etc.
Dis plutôt, en français, ce que tu cherches à faire, car j'ai l'impression que le GROUP BY ne sert à rien dans ton cas ...
Marsh Posté le 22-09-2005 à 15:09:33
Beegee a écrit : Quand on fait un GROUP BY, c'est pour grouper les données. |
ben j'ai une table "evenement" et une autre "typeEvenement" et je dois utiliser les données pour les afficher sur des périphérique mobile... donc je ne veux pas tous les champs de la table, mais uniquement pour la table evenement:
et pour la table typeEvenement :
ensuite j'aimerais regrouper le résultat par type d'événement et classer par nom d'événements.
C'est pourtant une requête assez simple, je comprends pas!
Merci pour votre aide!
Marsh Posté le 22-09-2005 à 15:13:09
Et pourquoi pas, tout simplement :
Code :
|
Quand tu dis "regrouper le résultat par type d'événement", ça veut dire trier, en fait, non ???
Marsh Posté le 22-09-2005 à 15:20:57
Il n'est pas possible de faire un group by sur ton e."description" à cause de son type. Par contre, si tu veux grouper, il faut que tu groupes par au moins tous les champs qui risquent d'être différents d'un enregistrement à l'autre, donc avec ton e."description".
Conclusion, trouve une autre solution
Au pire tu peux faire CAST/CONVERT, mais ton ntext va se transformer en varchar(8000).
Marsh Posté le 22-09-2005 à 15:41:00
Beegee a écrit : Et pourquoi pas, tout simplement :
|
ouais en fait c vrai! ca change à rien! vu que je vais avoir que 3 type d'événement, a savoir (conférence / séminaire / formation).
Ca a l'air de marcher impecc! merci!
Marsh Posté le 22-09-2005 à 15:42:00
godbout a écrit : Il n'est pas possible de faire un group by sur ton e."description" à cause de son type. Par contre, si tu veux grouper, il faut que tu groupes par au moins tous les champs qui risquent d'être différents d'un enregistrement à l'autre, donc avec ton e."description". |
arf, c pour ca que ca marchait pas alors :S
Marsh Posté le 22-09-2005 à 15:43:26
ah j'avais encore une question:
C'est possible de récupérer une date dans SQL et n'afficher que le jj/mm/aaaa, mais dans 1 seul champ! Pasque pour l'instant il me sort du jj/mm/aaa/hh:mm:ssss ...... un peu long
Marsh Posté le 22-09-2005 à 15:49:05
Chaque SGBD a sa propre syntaxe pour le formatage des dates.
Avec Oracle, c'est TO_CHAR.
Pour les autres, je sais pas trop, mais si tu tapes sous Google : "<ton SGBD> date functions" tu devrais trouver.
Marsh Posté le 22-09-2005 à 16:56:54
le_duc a écrit : ah j'avais encore une question: |
Si t'es sous SQL-SERVER, moi j'ai pas trouvé un truc potable, donc je change direct dans le code avec des fonctions toutes faites
Marsh Posté le 22-09-2005 à 17:43:04
mySql : DATE_FORMAT(<ta date>, '%d/%m/%y')
Oracle : TO_CHAR(<ta date>, 'DD/MM/YY')
SQL Server : SELECT CONVERT(CHAR(8), <ta date>, 3) pour du dd/mm/yy.
cf: http://msdn.microsoft.com/library/ [...] z_2c1f.asp
Marsh Posté le 22-09-2005 à 19:07:24
Beegee a écrit : mySql : DATE_FORMAT(<ta date>, '%d/%m/%y') |
SUPERBE
juste mettre "103" (ou 104 si on veut des points à la place des /) à la place du 3.
Merci beaucoup!!!
edit: en fait si on met 3 à la place de 103, on a l'année au format yy et non yyyy
Marsh Posté le 23-09-2005 à 14:56:04
ReplyMarsh Posté le 23-09-2005 à 15:10:17
Beegee a écrit : 3 ou 103, c'est pour avoir l'année sur 2 ou 4 chiffres si je me souviens bien |
ouais, c bien ca, je viens de tester!
merci encore.
Marsh Posté le 22-09-2005 à 13:34:12
Yop!
Je comprends pas pourquoi je ne peux pas faire ca:
Il me dit:
Merci pour votre aide!
++