|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
Bonjour TLM,
j'ai une base de données SyBase qui tourne sous UNIX, je me conecte depuis putty sur cette BD pour en tirer des données ou enregistrements je veux faire une requête SQL (j'accéde via isql ....) pour ca : ma table : TAB Code :
Code :
donc un truc de requête qui boucle sur le résultat d'une autre requête ! avec Sybase, j'arrive pas a trouver comment faire tourner une requête qui boucle sur le résultat d'une autre si quelqu'un peux m'aiderpour ca, merci d'avance |
||||
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Jean-Philippe SARASY Inscription : mars 2007 Messages : 131 ![]() |
Bonjour
je pense que tu dois pouvoir utiliser un curseur pour ton probleme Voici un exemple : declare Liste_Tables cursor for ( select name from sysobjects where type='U' ) declare @NomTable varchar(40) open Liste_Tables fetch Liste_Tables into @NomTable while (@@sqlstatus = 0) begin if (select count(*) from Exploit_Nis..TABLES where NOM_BASE = @db_name and NOM_TABLE = @NomTable) = 0 begin insert Exploit_Nis..TABLES values ( @NomTable, @db_name ) end fetch Liste_Tables into @NomTable end close Liste_Tables jeeps64 |
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
merci pour ta réponse,
mais en tant que débutant avec SyBase, je vois ta solution est un peu compliqué pour moi !! je sais pas s'il y'en a une autre solution purement requête SQL plus raisonable a mes connaissances SyBase. merci pour ta solution que je l'a prends en considération malgré tout |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Jean-Philippe SARASY Inscription : mars 2007 Messages : 131 ![]() |
Ma reponse fut un epu rapide et inadaptée ce matin
Voici la requete qui devrait resoudre ta demande : select champ_1,champ_2,count(*) as champ_3 from TAB group by champ_1,champ_2 jeeps64 |
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
coool ca marche comme je le souhaite 1000 et 1000 merci
juste un truc, y'a t'il un moyen d'en tirer la somme dans l'affichage pour le champs : champ_2_nb c'est a dire avoir ce résultat : [ CODE] champ_1----champ_2----champ_3_nb --A1---------1001----------2------- --A1---------1002----------1------- --A1---------1011----------1------- --A1---------2013----------1------- TOTAL----------------------5------- --A2---------1001----------2------- --A2---------1002----------1------- --A2---------1005----------1------- TOTAL----------------------4------ --A3---------1001----------1------- --A3---------1005----------1------- TOTAL----------------------2------- TOTAL_GENERALE-----------11------ [/CODE] sachant que TOTAL_GENERALE = somme des totaux et merci d'avance PS : je fesais ca en ORACLE mais en Sybase, aucune idée !!! |
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
desolé pour mettre l'exemple entre c'est a dire avoir ce résultat :
Code :
et merci d'avance PS : je fesais ca en ORACLE mais en Sybase, aucune idée !!! |
||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Jean-Philippe SARASY Inscription : mars 2007 Messages : 131 ![]() |
directement, je ne vois pas
mais je ne suis pas un expert du developpement SQL La seule chose que je peux te proposer, c'est un mix entre : select champ_1,count(*) as TOTAL from TAB group by champ_1 et la commande precedente dans une procedure stockée par exemple jeeps64 |
|
00
|
|
|
#8 | ||
![]() ![]() |
On peut utiliser une extension de Transact-SQL pour cela:
Code :
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#9 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
merci infiniment pour les réponses
ma question maintenant est si j'ai Code :
donc je veux avoir ce résultat : Code :
est il possible pour ca ? thanks en advance |
||||
|
|
00
|
|
|
#10 | ||
![]() ![]() |
Je suggère un bon bouquin sur le SQL...
En attendant, pour compter le nombre de ligne qui ont le champ "date" à non-null, tu peux faire qqch comme ceci: Code :
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
wow, cool
ca marche formidablement, merci juste une dernière chose qui concerne le compute, comment utiliser un compute avec un nom choisi comme le truc coun (*) as nombre, comment faire ca avec compute exemple : compute sum(count(*)) BY sdpID as somme_client est t'il possible ? et merci encore |
|
|
00
|
|
|
#12 |
![]() ![]() |
Je ne pense pas que ce soit possible, parce que le compute by est une fonction assez spéciale.
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#13 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
Ok, merci pour ta réponse,
et pour conclure ce sujet, je veux avoir un autre champs qui contient le pourcentage, c'est a dire Code :
|
||
|
|
00
|
|
|
#14 |
![]() ![]() |
Le pourcentage se calcule sur la base des deux autres colonnes - ce n'est pas très difficile à faire vu que les opérateurs arithmetiques habituels existent en SQL... je pense que là tu devrais pouvoir t'en sortir en réflechissant cinq minutes!
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#15 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
Salut,
je vous montre ma requête, j'ai essayé mais ca n'a pas donner de résultat !! Code :
donc champs_%_actif = [ (Actif_Subs) / (Nb_Subs) ] *100 et de même pour un autre champs pourcentage : champs_%_inactif = [ (Non_Actif_Subs) / (Nb_Subs) ] *100 voilà, j'ai essayé avec : Code :
|
||||
|
|
00
|
|
|
#16 | ||
![]() ![]() |
On ne peut pas utiliser les alias de colonne dans la requête elle-même.
Essaye ceci: Code :
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#17 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
cool, ca marche trés bien a part que j'ai 5 chiffres a aprés la virgule,
j'ai utiliser FLOAT(3,2) mais il n'a ps accepté ca, erreur !!! comment puis je avoir que 2 chiffres aprés la virgule ? et pkoi dans l'affichage, sa saute les lignes pour la dernière colonne => mauvais afichage de mon résultat !!! exemple : Code :
|
||
|
|
00
|
|
|
#18 |
![]() ![]() |
Pour la précision, voir la liste des fonctions T-SQL disponible ici:
http://infocenter.sybase.com/help/to...s/blocks75.htm Pour la largeur de l'affichage cela dépend du client qui est utilisé. Si il s'agit d'isql, alors il faut utiliser -w100 (line wrap à 100 charactères, p.ex.) Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 73 ![]() |
Salut,
comment avoir que deux chiffres aprés la virgule ? et merci |
|
|
00
|
|
|
#20 |
![]() ![]() |
Je t'invite à lire la documentation des fonctions disponibles dans Transact-SQL, comme par exemple round(), str() et convert() (voir le liens vers la doc Sybase dans mon message précédent)
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com