Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1493 connectés 

  FORUM HardWare.fr
  Programmation

  [SQL] probleme de requetes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] probleme de requetes

n°104204
Ngok
Posté le 24-02-2002 à 16:29:51  profilanswer
 

Voici mes 3ere questions en SQL de newbies.
La seule commande SQL que je connaisse est SELECT * FROM client.
J'ai deux tables dans une base de données Oracle, client (qui contient l'ID, le nom (unique), + d'autres infos) et transaction (qui contient toutes les transactions entre un vendeur et un client ID, nom du client(meme que client.nom), flag + d'autres infos)
 
1. Je voudrai inserer (ou plutot ajouter) un nouveau champ dans une table existante (client). Le nom du nouveau champ est 'status' et est sur 3 caractères.
A quoi va ressembler ma requete:
INSERT status FROM client ??? (ou je mets le type du champ VARCHAR(3))
 
2. Je voudrai maintenant faire une selection des clients contenu dans la table transaction (ou faire la listes des clients) mais sans avoir tous les boublons (parce que je peux avoir plusieurs transactions pour le meme clients), il me faut uniquement la liste des clients
SELECT transaction.nom FROM transaction WHERE ??? (quel est le critere pour n'avoir que les noms des clients)
Ex:  
DUPOND
RICHARD
DUPOND
DUPOND
RICHARD
TREMBLAY
 
resultat escompté  
DUPOND
RICHARD
TREMBLAY
 
 
3. Et pour finir je voudrai affecter (ou appliquer) un status a mon flag (de la table transaction) lorsque le client a un status actif (par exemple 'A';) Si le status du client (table client) est de type 'A' je veux mettre toutes les transactions associées a ce client à 'V' (V comme valide)
UPDATE transaction.flag SET 'V' WHERE client.nom=transaction.nom AND client.status='S' (je ne sais pas si la syntaxe est bonne mais ca donne une idee du resultat souhaité)
 
 
Si vous pouvez me donner une syntaxe exacte ca serai super cool  
Si vous n'avez rien compris, faites le moi savoir
 
 
Voila vous avez 1 heure pour y repondre
 
Merci beaucoup pour les reponses
 
 
Question supplementaire
Quel logiciel (client oracle) utilisez vous acceder à Oracle ?
J'utilise presentement PL/SQL, TOAD ne marche pas il reste gelé a son lancement (si quelqu'un a une solution pour ca)

mood
Publicité
Posté le 24-02-2002 à 16:29:51  profilanswer
 

n°104207
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-02-2002 à 16:43:06  profilanswer
 

Ngok a écrit a écrit :

 
1. Je voudrai inserer (ou plutot ajouter) un nouveau champ dans une table existante (client). Le nom du nouveau champ est 'status' et est sur 3 caractères.
A quoi va ressembler ma requete:
INSERT status FROM client ??? (ou je mets le type du champ VARCHAR(3))



 
INSERT INTO client VALUES + les valeurs de tes champs dans l'ordre entre () pour rajouter une ligne (enregistrement),
ALTER TABLE pour rajouter une colonne (champ)
 

Ngok a écrit a écrit :

 
2. Je voudrai maintenant faire une selection des clients contenu dans la table transaction (ou faire la listes des clients) mais sans avoir tous les boublons (parce que je peux avoir plusieurs transactions pour le meme clients), il me faut uniquement la liste des clients
SELECT transaction.nom FROM transaction WHERE ??? (quel est le critere pour n'avoir que les noms des clients)
Ex:  
DUPOND
RICHARD
DUPOND
DUPOND
RICHARD
TREMBLAY
 
resultat escompté  
DUPOND
RICHARD
TREMBLAY




 
SELECT DISTINCT Nom FROM Transaction
 

Ngok a écrit a écrit :

 
3. Et pour finir je voudrai affecter (ou appliquer) un status a mon flag (de la table transaction) lorsque le client a un status actif (par exemple 'A';) Si le status du client (table client) est de type 'A' je veux mettre toutes les transactions associées a ce client à 'V' (V comme valide)
UPDATE transaction.flag SET 'V' WHERE client.nom=transaction.nom AND client.status='S' (je ne sais pas si la syntaxe est bonne mais ca donne une idee du resultat souhaité)




 
UPDATE Client, Transaction SET Transaction. Flag = 'V' Where client.nom=transaction.nom AND client.status = 'S'
 

Ngok a écrit a écrit :

 
Voila vous avez 1 heure pour y repondre




 
on te répond pour te rendre service, et non par obligation...
 

Ngok a écrit a écrit :

 
Merci beaucoup pour les reponses




 
De rien

 

[jfdsdjhfuetppo]--Message édité par Harkonnen--[/jfdsdjhfuetppo]

n°104242
Ngok
Posté le 24-02-2002 à 17:58:50  profilanswer
 

C'était juste une plaisanterie (pour faire style scolaire)
 
Ngok a écrit :
--------------------------------------------------------------------------------
Voila vous avez 1 heure pour y repondre
--------------------------------------------------------------------------------
 
on te répond pour te rendre service, et non par obligation...
 
 
 
Merci beaucoup à toi d'avoir pris la peine de repondre
merci

n°104276
Ngok
Posté le 24-02-2002 à 20:53:32  profilanswer
 

pardon du dérangement...
 
La commande suivante fonctionne pas, il me dit que .nom et .status n'existe pas. Je travaille sur deux tables, UPDATE marche que pour une table ? Comment lui indiquer d'utiliser aussi la table client ?
 
UPDATE transaction SET transaction.flag='S' WHERE transaction.nom=client.nom AND client.status='S'
 
UPDATE transaction,client SET... marche pas  
 
Où puis-je trouver un jeu d'instruction SQL Oracle ?

n°104279
bjbebert
Posté le 24-02-2002 à 21:02:58  profilanswer
 

Ngok a écrit a écrit :

1. Je voudrai inserer (ou plutot ajouter) un nouveau champ dans une table existante (client). Le nom du nouveau champ est 'status' et est sur 3 caractères.  



Pour insérer une colonne, c'est différent.
Ca peut varier d'un SGBD à un autre mais ca ressemble souvent à ca :
ALTER TABLE client ADD 'status' VARCHAR(3)
 

Ngok a écrit a écrit :

2. Je voudrai maintenant faire une selection des clients contenu dans la table transaction (ou faire la listes des clients) mais sans avoir tous les boublons (parce que je peux avoir plusieurs transactions pour le meme clients), il me faut uniquement la liste des clients
SELECT transaction.nom FROM transaction WHERE ??? (quel est le critere pour n'avoir que les noms des clients)  




SELECT transaction.nom FROM transaction GROUP BY transaction.nom
ou peut être :
SELECT DISTINCT transaction.nom FROM transaction

 

[jfdsdjhfuetppo]--Message édité par bjbebert--[/jfdsdjhfuetppo]

n°104281
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-02-2002 à 21:10:53  profilanswer
 

Le GROUP BY ne fonctionne que pour les fonctions d'agrégation, comme Sum() ou Count(), etc... :ouch:  
Le SELECT DISTINCT est tout à fait adapté à ce genre de cas

 

[jfdsdjhfuetppo]--Message édité par Harkonnen--[/jfdsdjhfuetppo]

n°104551
irulan
Posté le 25-02-2002 à 15:24:39  profilanswer
 

Ngok a écrit a écrit :

pardon du dérangement...
 
La commande suivante fonctionne pas, il me dit que .nom et .status n'existe pas. Je travaille sur deux tables, UPDATE marche que pour une table ?




Oui, hélas
 

Ngok a écrit a écrit :

 
 Comment lui indiquer d'utiliser aussi la table client ?




cf. 1ere question :)

 

[jfdsdjhfuetppo]--Message édité par irulan--[/jfdsdjhfuetppo]

n°104552
irulan
Posté le 25-02-2002 à 15:27:29  profilanswer
 

Ngok a écrit a écrit :

Question supplementaire
Quel logiciel (client oracle) utilisez vous acceder à Oracle ?
J'utilise presentement PL/SQL, TOAD ne marche pas il reste gelé a son lancement (si quelqu'un a une solution pour ca)  




 
Oracle Worksheet (fourni avec Oracle Enterprise Manager)
TOAD : il n'y a aucun message ?
Tu travailles sous quel OS ?

n°104625
bjbebert
Posté le 25-02-2002 à 17:24:25  profilanswer
 

Harkonnen a écrit a écrit :

Le GROUP BY ne fonctionne que pour les fonctions d'agrégation, comme Sum() ou Count(), etc... :ouch:  



LE GROUP BY te regroupe tous les champs identiques. Pratique quand tu as un count() ou autre, mais ca marche très bien sans.
Maintenant, c'est vrai que le DISTINCT est plus 'propre', mais j'étais pas sur de cette syntaxe pour Oracle.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [SQL] probleme de requetes

 

Sujets relatifs
phpBB probléme d'inscription!!![PHP] Probleme avec un script
Problème en [GSURfn][delphi] probleme avec les champs de type currency
Meler 2 requetes...[SQL] Recevoir toutes les correspondances d'une jointure
[SQL] Help requête tordueprobleme pour un enregistrment
problème encodage du contenu d'un formulaire avec phpproblème avec CIN
Plus de sujets relatifs à : [SQL] probleme de requetes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR