Titre Fenetre
Contenu Fenetre
Connexion
  • Se souvenir de moi
J'ai oublié mon mot de passe
BDGest'Arts, BDGest'ival, c'est parti !
Image Image Image

Modif de requetes SQL (suite au passage en V6)

Attention cette version de BDGest n'est plus maintenue depuis le 15/03/2021. Les version "officielles" sont BDGest Online et BDGest Mobile.

Modif de requetes SQL (suite au passage en V6)

Messagede Gwenhwyfar » 23/07/2007 09:05

Message précédent :
Même dans le cadre pro on fait des choses étonnantes avec access. Evidemment dès que la base prend de l'ampleur c'est un poil plus compliqué mais essayer de trouver un outil si bon marché et aussi souple surtout pour des novices....


En base locale, je veux bien. Et encore ...
Tout dépend aussi de ce que tu entends par "souple pour les novices".
Des apprentis sorciers qui, en quelques clics de souris, se créaient des bases Access en local avec des tables liées vers des bases Oracle ou SQLServer, mais sans rien comprendre à la façon dont ça fonctionne derrière, j'en ai vu pas mal ...
Only two things are infinite, the universe and human stupidity. I'm not sure about the universe ...
A. Einstein
Avatar de l’utilisateur
Gwenhwyfar
Quebec City
Quebec City
 
Messages: 2197
Inscription: 31/10/2006
Localisation: Pas loin des Kantess ;)
Age: 55 ans

Modif de requetes SQL (suite au passage en V6)

Messagede johnkalak » 23/07/2007 09:53

Tout dépend aussi de ce que tu entends par "souple pour les novices".
Des apprentis sorciers qui, en quelques clics de souris, se créaient des bases Access en local avec des tables liées vers des bases Oracle ou SQLServer, mais sans rien comprendre à la façon dont ça fonctionne derrière, j'en ai vu pas mal ...

Je parle de personnes (comme moi par exemple) qui ont quelques notions en base de données et à qui on demande de faire plein de stats dans tout les sens à partir de fichiers plats ou encore de gérer un planning pour une production informatique.
Sans connaître du tout access j'ai tout de même réussi à répondre au besoin preuve qu'access est assez accessible.
Si j'avais du faire ça sous Oracle j'y serais encore. Et je ne te parle pas d'interface graphique :mrgreen:
Ceci dit bien entendu je ne m'amuserais jamais à taper dans des bases oracle ou autre. Y'a des DBA pour ça.
Mais effectivement mes bases sont locales et mono utilisateurs. Mais elle répondent largement au besoin.
Bon désolé chef on dévie un peu du sujet :confused:
Avatar de l’utilisateur
johnkalak
Expert BDGestiste
Expert BDGestiste
 
Messages: 11491
Inscription: 19/11/2004
Localisation: F-59 Villeneuve d'Ascq
Age: 47 ans

Modif de requetes SQL (suite au passage en V6)

Messagede Pascal Forhan » 23/07/2007 18:36

C'est peut être un gadget mais pour une DB locale et perso c'est trés pratique ;) J'imagine la tête des utilisateurs de BD Gest' sur dans la procédure d'install je demandais d'installer un serveur Oracle :mrgreen: Le prix de la licence serait sympathique aussi :mrgreen:


Mais c'est parfait comme truc pour une base locale, j'ai juste quelque soucis avec le SQL utilisé :wink:
C'est bien mieux qu'une base propriétaire fichier comme l'était GBDAO :wink:
Avatar de l’utilisateur
Pascal Forhan
BDémoniaque
BDémoniaque
 
Messages: 795
Inscription: 03/07/2002
Age: 51 ans

Modif de requetes SQL (suite au passage en V6)

Messagede amadigi » 11/01/2008 01:28

Il m'est arrivé un truc bizarre, j'avais écrit une requête en V5 pour sélectionner les BD à prêter à un emprunteur, en fonction des prêts passés, afin de ne pas lui prêter les mêmes BD et de pouvoir lui prêter les compléments sur des séries :
SELECT s.titre, a.num, a.titre
FROM albums a, series s
WHERE a.idserie = s.idserie
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.emprunteur = 'XXXX'
AND a2.idserie = s2.idserie)
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.DateRetour is null
AND a2.idserie = s2.idserie)
ORDER BY s.titre, a.num

La multiplication par 1000 permettait de tomber sur un numéro unique en combinant idserie et idalbum
La première exclusion est sur les albums déjà prêtés
La seconde sur les albums en cours de prêt

Après le passage en V6, lorsque j'exécute cette requête, le *1000 se transforme en %1000 et la requête plante :cry:

J'ai résolu temporairement en mettant +100000, mais est-ce que quelqu'un a une idée du pourquoi du comment le * se transforme en % [:ar sparfel:2]
*** Mes ventes ***
Venez indiquer régulièrement vos achats DL 2014 ou vos achats par éditeur en DL 2014
Avatar de l’utilisateur
amadigi
BDGestiste
BDGestiste
 
Messages: 3540
Inscription: 31/05/2004
Localisation: Cachan
Age: 59 ans

Modif de requetes SQL (suite au passage en V6)

Messagede lavielleph » 14/01/2008 10:26

Bonjour,

j'ai une question simple: Perso 4 ne s'affiche pas dans le logicel, si je rajoute ", A.Perso4," dans SQL Album je n'ai toujours pas d'affichage.
J'ai envoyé 2 mails à la hot line sans réponses à ce jour.

Quelqu'un a t il une idée?

SQL Album:

A.EdO, A.Couverture, A.DateAchat, A.PrixAchat, A.DL, A.CoteActuelle, A.Editeur, A.Collection, Sc.Nom,
D.Nom, A.Integrale, A.HorsSerie, A.EditionLimitee, A.NoteAlbum, A.Format, A.Etat, A.Reference, A.Possede, A.Commentaire, Co.Nom, S.Style,
A.Broche, A.NbPages, Sc.Pseudo, D.Pseudo, Co.Pseudo, A.Perso1, A.Perso2, A.Perso3, A.NumA
FROM ALBUMS A, SERIES S, AUTEURS Sc, AUTEURS D, AUTEURS Co
WHERE A.IdSerie = S.IdSerie
AND A.IdColoriste = Co.IdAuteur
AND A.IdScenariste = Sc.IdAuteur
AND A.IdDessinateur = D.IdAuteur
Avatar de l’utilisateur
lavielleph
BDébutant
BDébutant
 
Messages: 1
Inscription: 07/05/2006
Localisation: La Seyne Sur Mer
Age: 58 ans

Modif de requetes SQL (suite au passage en V6)

Messagede BDGest » 14/01/2008 10:37

Perso4 n'est pas un champ texte comme les autres champs perso. C'est un champ Oui/Non qui peut avoir les valeurs 1/0 .

SELECT A.EdO, A.Couverture, A.DateAchat, A.PrixAchat, A.DL, A.CoteActuelle, A.Editeur, A.Collection, Sc.Nom,
D.Nom, A.Integrale, A.HorsSerie, A.EditionLimitee, A.NoteAlbum, A.Format, A.Etat, A.Reference, A.Possede, A.Commentaire, Co.Nom, S.Style,
A.Broche, A.NbPages, Sc.Pseudo, D.Pseudo, Co.Pseudo, A.Perso1, A.Perso2, A.Perso3, A.NumA , A.Perso4
FROM ALBUMS A, SERIES S, AUTEURS Sc, AUTEURS D, AUTEURS Co
WHERE A.IdSerie = S.IdSerie
AND A.IdColoriste = Co.IdAuteur
AND A.IdScenariste = Sc.IdAuteur
AND A.IdDessinateur = D.IdAuteur

doit marcher
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air con.
Avatar de l’utilisateur
BDGest
Administrateur du site
Administrateur du site
 
Messages: 14631
Inscription: 02/07/2002
Localisation: Besançon
Age: 53 ans

Modif de requetes SQL (suite au passage en V6)

Messagede amadigi » 18/04/2008 11:28

Il m'est arrivé un truc bizarre, j'avais écrit une requête en V5 pour sélectionner les BD à prêter à un emprunteur, en fonction des prêts passés, afin de ne pas lui prêter les mêmes BD et de pouvoir lui prêter les compléments sur des séries :
SELECT s.titre, a.num, a.titre
FROM albums a, series s
WHERE a.idserie = s.idserie
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.emprunteur = 'XXXX'
AND a2.idserie = s2.idserie)
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.DateRetour is null
AND a2.idserie = s2.idserie)
ORDER BY s.titre, a.num

La multiplication par 1000 permettait de tomber sur un numéro unique en combinant idserie et idalbum
La première exclusion est sur les albums déjà prêtés
La seconde sur les albums en cours de prêt

Après le passage en V6, lorsque j'exécute cette requête, le *1000 se transforme en %1000 et la requête plante :cry:

J'ai résolu temporairement en mettant +100000, mais est-ce que quelqu'un a une idée du pourquoi du comment le * se transforme en % [:ar sparfel:2]


Personne n'a répondu, vous n'avez pas une petite idée ???
*** Mes ventes ***
Venez indiquer régulièrement vos achats DL 2014 ou vos achats par éditeur en DL 2014
Avatar de l’utilisateur
amadigi
BDGestiste
BDGestiste
 
Messages: 3540
Inscription: 31/05/2004
Localisation: Cachan
Age: 59 ans

Modif de requetes SQL (suite au passage en V6)

Messagede johnkalak » 18/04/2008 11:45

Personne n'a répondu, vous n'avez pas une petite idée ???

Je viens de retourner ta requête dans tout les sens et aucune idée :shock:
J'ai même essayé un tout con
SELECT s.idserie*1000
FROM series s
et ça fonctionne....
Avatar de l’utilisateur
johnkalak
Expert BDGestiste
Expert BDGestiste
 
Messages: 11491
Inscription: 19/11/2004
Localisation: F-59 Villeneuve d'Ascq
Age: 47 ans

Modif de requetes SQL (suite au passage en V6)

Messagede amadigi » 18/04/2008 12:53

Oui, c'est ce que j'avais trouvé qui contourner le pb et j'ai donc gardé ce système
Mais si quelqu'un avait une explication, afin que je m'endorme moins bête ... mais cela ne m'empêche pas de dormir :mrgreen:
*** Mes ventes ***
Venez indiquer régulièrement vos achats DL 2014 ou vos achats par éditeur en DL 2014
Avatar de l’utilisateur
amadigi
BDGestiste
BDGestiste
 
Messages: 3540
Inscription: 31/05/2004
Localisation: Cachan
Age: 59 ans

Modif de requetes SQL (suite au passage en V6)

Messagede silversurfer » 24/04/2008 21:32

Pour revenir sur cette histoire, il y a peut-être un bug bizarre avec le caractère '*' car j'ai moi aussi une requête où il est automatiquement remplacé par un'%' ce qui cause une erreur.

Voilà ma requête (nombre d'albums par auteur dans l'ordre en tenant compte des "autres auteurs") :

Code: Tout sélectionner
SELECT Nom, Prenom, Pseudo, SUM(T) AS Total FROM
(SELECT Nom, Prenom, Pseudo, count(*) AS T
FROM AUTEURS, ALBUMS
WHERE (AUTEURS.IdAuteur=ALBUMS.IdScenariste
OR AUTEURS.IdAuteur=ALBUMS.IdDessinateur)
AND Nom <> '<Collectif>'
GROUP BY Pseudo, Prenom, Nom
UNION ALL
SELECT Nom, Prenom, Pseudo, count(*) AS T
FROM COLLABORATEURS, AUTEURS
WHERE (AUTEURS.IdAuteur=COLLABORATEURS.IdAuteur)
AND Nom <> '<Collectif>'
GROUP BY Pseudo, Prenom, Nom) AS TempTable
GROUP BY Pseudo, Nom, Prenom
ORDER BY SUM(T) DESC

Et donc le deuxième COUNT(*) est remplacé par COUNT(%), ce qui fait échouer la requête. En remplaçant par un champ (COUNT(COLLABORATEURS.idAlbum)), ça marche.

J'ai essayé de reproduire le problème avec d'autres requêtes, mais sans succès.
Avatar de l’utilisateur
silversurfer
BDéphile
BDéphile
 
Messages: 1209
Inscription: 26/02/2004
Localisation: Ailleurs
Age: 48 ans

Modif de requetes SQL (suite au passage en V6)

Messagede amadigi » 24/04/2008 21:50

Il y a peut-être un conflit entre la version d'access locale et celle attendue dans BdGest
Sur mon PC, j'ai access 2000, lorsque j'ouvre le fichier mdb de ma base BdGest, il me dit qu'il faut la convertir pour pouvoir la manipuler sous access
je la convertit, je copie-colle ta requête et l'exécute telle quelle, aucun pb
mais dès que je fais la même chose dans les opérations sql avancées de BDGest, l'étoile est transformée en % et la requête plante

Chef, n'y aurait-il pas un pb de compatibilité de version entre BdGest et MsAccess local ???
Je testerai au boulot, je dois avoir access 2003, pour voir !!
*** Mes ventes ***
Venez indiquer régulièrement vos achats DL 2014 ou vos achats par éditeur en DL 2014
Avatar de l’utilisateur
amadigi
BDGestiste
BDGestiste
 
Messages: 3540
Inscription: 31/05/2004
Localisation: Cachan
Age: 59 ans

Modif de requetes SQL (suite au passage en V6)

Messagede BDGest » 28/04/2008 14:28

La base BD Gest' est au format access 97 (pour des raison de compatibilité avec la version 5) le problème vient peut être de la ?
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air con.
Avatar de l’utilisateur
BDGest
Administrateur du site
Administrateur du site
 
Messages: 14631
Inscription: 02/07/2002
Localisation: Besançon
Age: 53 ans

Modif de requetes SQL (suite au passage en V6)

Messagede amadigi » 28/04/2008 14:43

Je n'ai plus access 97 et ne vais pas m'embêter à la rechercher, à partir du moment où j'ai réussi à contourner le pb :wink:
Mais cela est bon à savoir en cas de souci dans une requête contenant le caractère *
*** Mes ventes ***
Venez indiquer régulièrement vos achats DL 2014 ou vos achats par éditeur en DL 2014
Avatar de l’utilisateur
amadigi
BDGestiste
BDGestiste
 
Messages: 3540
Inscription: 31/05/2004
Localisation: Cachan
Age: 59 ans

Modif de requetes SQL (suite au passage en V6)

Messagede Pascal Forhan » 28/04/2008 15:24

Ca ressemble à un bon bug d'encodage ça, du style y a une fonction qui transforme automatiquement le '*' en '%' pour des raisons de substitution entre le caractère joker de Windows '*' et le caractère joker du SQL '%'.

T'as pas un truc dans le genre chef ?
Avatar de l’utilisateur
Pascal Forhan
BDémoniaque
BDémoniaque
 
Messages: 795
Inscription: 03/07/2002
Age: 51 ans

Modif de requetes SQL (suite au passage en V6)

Messagede silversurfer » 01/05/2008 19:36

Sinon, je n'ai pas Access sur la machine où ma requête plante.
Avatar de l’utilisateur
silversurfer
BDéphile
BDéphile
 
Messages: 1209
Inscription: 26/02/2004
Localisation: Ailleurs
Age: 48 ans

Précédente

Retourner vers BD Gest' 7 (Obsolète)

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité