j'arrive pas a terminer cette requete !!! - SQL/NoSQL - Programmation
Marsh Posté le 21-11-2005 à 14:41:18
pourquoi tu ecris pas tout betement le type d'avis entre quotes?
ex:
SELECT [%$##@_Alias].som
FROM [
SELECT 'nouvelle intégration fermée ',Count(*) AS som
FROM Avis_travaux
WHERE (Avis_travaux.type_op="NOUVELLE INTEGRATION" ) And (Avis_travaux.cloture=False) ...
Marsh Posté le 21-11-2005 à 14:41:50
Et ça ?
Citation : SELECT type_op,cloture,count(*) |
Marsh Posté le 21-11-2005 à 14:52:41
Merci mais cela ne fonctionne pas le coup des quotes
Pour orafrance on ne peut pas regrouper par type_op car ce champs peut prendre de nombreuse valeur, mais ce qui nous interresse c'est est il sur "nouvelle intégration ou pas" ) on ne dispose pas de champ "type" qui contienne :
intégration fermé
intégration ouverte
non intégration ouverte
non intégration fermé
Marsh Posté le 21-11-2005 à 14:57:31
c'est pas possible que ca marche pas t'as essaye :
SELECT [%$##@_Alias].type,[%$##@_Alias].som
FROM [
SELECT "nouvelle intégration fermée" as type,Count(*) AS som
FROM Avis_travaux
WHERE (Avis_travaux.type_op="NOUVELLE INTEGRATION" ) And (Avis_travaux.cloture=False) ...
Marsh Posté le 21-11-2005 à 15:12:44
Erreur de ma part pardon je n'avais pas inclus le type dans le groupe by
Oui ca marche merci
Marsh Posté le 21-11-2005 à 16:42:46
Sous Oracle il y a le CASE qui est pas mal
Sinon, avec DECODE il doit y avoir moyen de s'en sortir aussi. Pour les type_op, il suffit de faire un WHERE ... IN ()
Marsh Posté le 21-11-2005 à 16:44:00
orafrance a écrit : Sous Oracle il y a le CASE qui est pas mal |
peut on inclure un CASE dans le group by avec Oracle ? (sous MySQL c'est pas possible )
Marsh Posté le 22-11-2005 à 09:05:00
je crains que non mais il doit y avoir moyen de s'en sortir avec une sous-requête :
Citation : SELECT * |
Marsh Posté le 22-11-2005 à 09:31:48
je sais que j'avais pas mal galere avec ca et il me semble que meme cette syntaxe ne soit pas acceptee
Marsh Posté le 21-11-2005 à 14:30:56
Bonjours : soit la table Avis contenant les champs suivants : cloture (type booleen) et type_op (type texte).
le champ type_op peut prendre plusieurs valeurs dont "nouvelle intégration".
je souhaite faire une requête qui me compte les avis comme suit :
nouvelle intégration fermée <=> type_op = "nouvelle opération et cloture" = vrai
nouvelle intégration ouverte <=> type_op = "nouvelle opération et cloture" = faux
pas intégration fermé <=> type_op <> "nouvelle opération et cloture" = vrai
pas intégration ouvert <=> type_op <> "nouvelle opération et cloture" = faux
ce qui donnerait une affichage comme suit en mode feuille de données:
type | somme
----------------------------------------------
intégration fermé | 12
intégration ouverte | 13
non intégration ouverte | 14
non intégration fermé | 51
pour l'instant j'ai écrit cette requete qui me donne le résultazt mais ne me permet pas de "légender" avec le type !!
SELECT [%$##@_Alias].som
FROM [
SELECT Count(*) AS som
FROM Avis_travaux
WHERE (Avis_travaux.type_op="NOUVELLE INTEGRATION" ) And (Avis_travaux.cloture=False)
UNION ALL
SELECT Count(*) AS som
FROM Avis_travaux
WHERE (Avis_travaux.type_op="NOUVELLE INTEGRATION" ) And (Avis_travaux.cloture<>False)
UNION ALL
SELECT Count(*) AS som
FROM Avis_travaux
WHERE (Avis_travaux.type_op<>"NOUVELLE INTEGRATION" ) And (Avis_travaux.cloture=False)
UNION ALL
SELECT Count(*) AS som
FROM Avis_travaux
WHERE (Avis_travaux.type_op<>"NOUVELLE INTEGRATION" ) And (Avis_travaux.cloture<>False)
]. AS [%$##@_Alias]
GROUP BY [%$##@_Alias].som;
Comment faire pour avoir la colonne avec le type de l'avis ?