|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 20 ![]() |
Bonjour,
Je voudrais exécuter une requête de ce type Code :
Est-ce qu'interbase n'accepte pas les sous-requêtes retournant une table? Si oui, comment peut-on s'en sortir facilement? J'utilise DelphiXE entreprise et INTERBASE fourni avec (interbase 2009). Merci d'avance pour votre aide. |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 205 ![]() |
Déjà , dans ce SQL il y a une virgule en trop
sous Firebird j'aurais fait une CTE (je suis fan , de plus c'est plus facile a lire) Code :
Code :
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
||||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 20 ![]() |
La syntaxe With n'est pas acceptée par interbase.
Est-ce qu'une solution comme indiquée ci-dessous serait envisageable? Code :
N'y a t-il vraiment pas de solution simple pour ce problème, avec INTERBASE ? |
||
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 20 ![]() |
Bon,.. comme à priori, INTERBASE ne semble pas très bon sur ce coup là, je me suis rabattu sur la programmation pascal habituelle pour résoudre mon problème.
Ce que j'avais besoin, c'est une liste d'items d'un champ, en assurant qu'il n'y ait aucune redondance. J'ai codé ça Code :
En fait, toute l'astuce est dans le |
||
|
|
00
|
|
|
#5 | ||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 205 ![]() |
Et avec des Vues (VIEW) ?
Sur mes vieux souvenirs , une vue ne stocke (duplique) pas les données mais seulement le SQL ensuite il suffit d'utiliser la vue comme une table euh , pas besoin du duplicates:=dupIgnore un DISTINCT fait l'affaire Citation:
Citation:
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
||
|
|
00
|
|
|
#6 | |||||||||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 20 ![]() |
J'ai essayé avec
Code :
L'astuce ici est donc d'inclure un champ dans un GROUP BY en utilisant un Max( ) afin de pouvoir utiliser cette variable dans le WHERE. Je ne savais pas que l'on pouvait faire cela! Cette solution est intéressante car très simple. Le tout est de savoir jongler avec les requêtes SQL... Au sujet de pouvoir résoudre le problème (ce n'est plus vraiment d'actualité du fait que la méthode donnée ci-dessus est pleinement satisfaisante, mais j'aime bien savoir...) avec une Table ou View intermédiaire: - View->J'ai envisagé la chose, mais comme j'étais obligé de résoudre le Pb en 2 temps Code :
- Dans mes essais avec la VIEW et la TABLE, à la création, pas de problème, mais au moment du DROP, j'ai obtenu une erreur du type Citation:
- Un dernier point au sujet du travail sur une table intermédiaire. Si un premier utilisateur par l'application créé la table Code :
Code :
Qu'est-ce qui se passe en réalité. Mon hypothèse de travail est peut être complètement farfelue. Merci de m'éclairer à ce sujet. |
|||||||||
|
|
00
|
|
|
#7 | |||||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 205 ![]() |
Citation:
Citation:
Citation:
le problème c'est que tu semble absolument vouloir passer par des tables intermédiaires a créer et détruire (des GLOBAL TEMPORARY TABLE dans le jargon, ça existe , la preuve) mais tu demandes de l'aide en mettant demandant des ordres tellement généraux qu'il est très difficile de répondre : un Code :
SELECT champ1,champ2 FROM table1 WHERE champ2="une valeur" - Quelle est la structure de la table, s'il y a des index , le type de champ et s'il est 'nullifiable' ! - aucun jeu d'essai - aucun élément sur le résultat a trouver une demande très vague (on n'est pas dans ta tête) ne pourra que donner une réponse vague (le fameux 'GIGO')
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
|||||
|
|
10
|
Copyright © 2000-2013 - www.developpez.com