|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Membre habitué
![]() Sylvain GourvilFreelance en développement Web Inscription : mars 2005 Messages : 248 ![]() |
Pourquoi pas ! Mais j'aurais vraiment peur de ne pas etre à la hauteur pour ce genre d'articles. Je peux tout de fois essayer d'écreir quelque chose de convenable.
J'y réfléchis et je te bip lol |
|
00
|
|
|
#22 | |
![]() ![]() ![]() |
Citation:
__________________
Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
|
00
|
|
|
#23 | |||
|
Nouveau Membre du Club
![]() |
Ca peut parraitre tout bete mais c'est pratique des fois :
Citation:
|
|||
|
|
00
|
|
|
#24 | ||
|
Membre Expert
![]() Inscription : octobre 2004 Messages : 1 508 ![]() |
Réponse : Citation:
Donc, comment utiliser les alias Réponse : Citation:
|
||
|
|
00
|
|
|
#25 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 170 ![]() |
Excusez moi d'intervenir mais dans 80 % des réponses que vous donnez pour la FAQ SQL, il ne s'agit nullement de SQL !
TOP, SHRINK, BYTE, SYSDATE, tablespace, TO_CHAR, ADD_MONTHS n'existe pas en SQL Le Update avec correlation de table n'est pas codifié comme cela en SQL. Bref ce n'est pas un FAQ sur SQL, mais sur du chararbia d'éditeurs et risque de nous pourrir plus la vie que de la solutionner. Les utilisateurs auront l'aire malin quand on leurt dira "oui mais ça sa marche avec la version 6.54656123321512 de BidouilleSQL de L'éditeur MicroBasouille".. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#26 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 940 ![]() |
Merci de cette précision, mais aurais-tu une méthode (simple, de préférence) permettant de valider la compatibilité de telle ou telle proposition avec telle ou telle version de la norme ?
|
|
|
00
|
|
|
#27 | |||
|
Membre chevronné
![]() Inscription : septembre 2004 Messages : 807 ![]() |
J'ai quelques propositions à faire concernant cette FAQ.
Déjà il faudrait dans le cas où les réponses sont différentes selon le SGBD lister ces réponses justement, et surtout utiliser beaucoup d'exemples. Typiquement, dans la partie concernant les limites les trois questions sont à peu près équivalentes et les réponses aussi mais pour des SGBD différents. Et à la question Citation:
Sinon la partie types de données pourrait commencer par un tableau avec tous les types existants pour les SGBD les plus communs (je crois en avoir vu un dans un des tutoriels). sinon une question qui peut être utile : Q R Par exemple : Code :
|
|||
|
|
00
|
|
|
#28 | ||
|
Expert Confirmé
![]() ![]() |
Q
(cf post de lper du 28/07/2005) R Soit une table de lignes de factures (Ligne) comportant les champs suivants : - idFacture (FK vers une entête), - Numero (critère de tri, unique par idFacture), - Montant Voici la requête (jointures Oracle 8, pas de JOIN Code :
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
||
|
|
00
|
|
|
#29 | ||||||||||
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Sélection multivaluée
Question souvent posée : J'ai des vendeurs qui travaillent sur plusieurs villes, si j'interroge ma base, j'obtiens : Code :
Code :
Voici une solution avec le WITH RECURSIVE de la norme SQL 3 (ou SQL1999) (en fait il n'y a pas le "RECURSIVE", puisque SQLExpress 2005 supporte la fonction, mais pas le mot clé ) Code :
Avec les mêmes données (et les mêmes risque au niveau des performances) que pour la première solution, voici un exemple pour ORACLE : Code :
On voit bien l'intérêt du WITH sur cet exemple Amélioration de la solution ORACLE (grâce à une idée de FRED_D dans ce post : http://www.developpez.net/forums/sho...d.php?t=157487) qui simplifie énormément le PLAN en remplaçant une sous requête compliquée par une fonction analytique pour calculer un MAX ( )...Code :
|
||||||||||
|
|
00
|
|
|
#30 | ||||||
|
Expert Confirmé
![]() ![]() |
Voici un jeu d'essai illustrant ceci : Code :
Code :
Si dans notre exemple nous souhaitons travailler uniquement sur les événements de catégorie n° 1 : Code :
Bon, ce point était déjà abordé dans la première page de ce topic, j'espère juste que le complément en valait la peine
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
||||||
|
|
00
|
|
|
#31 | ||||
|
Expert Confirmé
![]() ![]() |
Voici un jeu d'essai avec une table de contacts toute simple, que l'on souhaite trier par codes postaux, dans un ordre personnalisé : Code :
Code :
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
||||
|
|
00
|
|
|
#32 | ||||
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
A propos du tri personnalisé :
Remarque : l'exemple donné ne gère pas le cas où Cpo est NULL, il faut rajouter OR Cpo IS NULL dans le dernier WHERE. Si le moteur autorise le CASE WHEN, je trouve la solution suivante plus élégante : Code :
Code :
|
||||
|
|
00
|
|
|
#33 | ||||||
|
Expert Confirmé
![]() ![]() |
Voici un jeu d'essai avec une table Parent et une table Enfant : Code :
Code :
Code :
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
||||||
|
|
00
|
|
|
#34 |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 273 ![]() |
Q: Comment calculez un âge à partir d'un champ DATETIME?
R: Code :
YEAR(FROM_DAYS(1 + TO_DAYS(CURDATE()) - TO_DAYS(birthday))) AS age |
|
|
00
|
|
|
#35 | ||||||
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Le calcul du PUMP (Prix Unitaire Moyen Pondéré) est un sujet courant et il existe plusieurs façon de valoriser un stock, le but de l'exemple ci-dessous n’est pas de faire un cours de gestion de stock, mais de donner un exemple d’utilisation de la récursion avec SQL.
Une seule table est nécessaire, elle est ici baptisée REC_STOCK et permet d’enregistrer les mouvements (entrée et sortie) du stock, le pré-requis pour que la requête qui permet de calculer le PUMP fonctionne est que les mouvements aient lieu dans l’ordre (seules des sorties de quantités disponibles sont autorisées). Création de la table (sans l’intégrité référentielle pour m’éviter de créer la table Produit par exemple) Code :
CREATE TABLE REC_STOCK (IdProduit integer, DateMvt datetime, Quantite integer, PU float); Code :
On voit dans l’exemple ci-dessus que le PU est à null pour les sorties. Principe du calcul (pour un article donné) : Lors d’une entrée la valeur du stock est égal à la valeur précédente (0 si c’est le premier achat) + le prix d’achat * Quantité. Le PUMP est alors égal à la nouvelle valeur du stock divisé par la nouvelle quantité en stock. Lors d’une sortie la valeur du stock est égal à la valeur précédente – le PUMP précédent * Quantité (ne peut être négatif). Le PUMP n’est pas modifié. Voici la requête qui permet de calculer le PUMP Code :
Code :
|
||||||
|
|
00
|
|
|
#36 | ||||
|
Expert Confirmé
![]() ![]() |
La table Match permet de fixer la date du match, le club recevant (Match_Locaux) et le club se déplaçant (Match_Visiteur). Les contraintes d'intégrités ne sont pas gérées dans l'exemple afin de ne pas alourdir les scripts. Code :
Code :
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
||||
|
|
00
|
|
|
#37 | |
|
Expert Confirmé
![]() ![]() |
Question : Doit-on faire les jointures dans la clause WHERE ou avec des JOIN ?
Réponse : Citation:
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
|
|
|
00
|
|
|
#38 |
|
Membre éclairé
![]() ![]() |
Cher Tous,
Veuillez trouver ci-joint les FRM (FRM-11400 au FRM-41102) avec : Définition Cause Action Niveau Type Salutations. |
|
00
|
|
|
#39 |
![]() ![]() |
Je pense que vous vous mettez le pied dans un bourbier si vous acceptez tout ce qui n'est pas pur sucre SQL (soit donc normé). TOP, DATETIME et consors...
Vous avez djà commencé à sélectionner des syntaxe propres à des moteurs en particuliers, me semble-t-il. Pour cela, il y a les Faq spécifiques...
__________________
Sr DBA Oracle / Sybase / MS-SQL / MySQL / DB2 / Postgresql / Informix Administrateur SAP Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums ! |
|
00
|
|
|
#40 |
|
Membre habitué
![]() Gaëtan Développeur Oracle Inscription : mai 2006 Messages : 124 ![]() |
Quand tu parle d'aide c'est genre les triggers,order by,group By jointure naturel ect...?
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com