begin process at 2012 05 27 01:10:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

S.O.S Vue compliquée recherche solution desespérément!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

S.O.S Vue compliquée recherche solution desespérément!

mercredi 6 octobre 2010 à 14:42:37 | S.O.S Vue compliquée recherche solution desespérément!

universaliss

Bonjour je sollicite votre aide pour un petit problème de requête au sein d'une vue.

J'espère que ce genre de problème n'a pas déjà été posé auquel cas je ne l'ai pas trouvé dans la recherche et je remercie d'avance celui qui me redirigera dessus.
Je tiens absolument a écrire une vue qui,
après moult requête renvoie la table de résultat suivant
id..valeur. type
1 .. 56 1
1 .. 60 2
2 .. 45 2
2 .. 45 3
2 .. 49 4
3 .. 12 2
4 .. 59 5
4 .. 14 6
le tout sur 100 000 lignes.

Je souhaiterai obtenir dans ma vue seulement 1 et un seul tuple par id correspondant au type le plus petit existant pour cet id.
donc
1 56 1
2 45 2
3 12 2
4 59 14
sur le nombre d'id.

Il existe la solution pour chaque tuple de faire un "select top ......order by type asc"
mais là je souhaite avoir le résultat pour l'ensemble des id de la table.

Enfin comme si ça ne suffisait pas, pour des raisons technique je ne peux me servir des curseurs (pas de boucles)
et étant dans la création d'une vue je dois aussi me passer de fonctions.

S'il existe ici des magiciens du sql qu'il se dénoncent et me vienne en aide!

Merci d'avance.
samedi 9 octobre 2010 à 01:17:53 | Re : S.O.S Vue compliquée recherche solution desespérément!

Tolliap


Voici une solution qui fonctionne :

table que j'ai créé pour met test :
Code sql :
CREATE TABLE dbo.test ( 
    id    	int NOT NULL,
    valeur	varchar(25) NULL,
    type  	int IDENTITY(1,1) NOT NULL 
    )

Voici la requete :

Code sql :
select id,valeur,type from (
select id,valeur,type,ROW_NUMBER() OVER(PARTITION BY id ORDER BY valeur asc) AS 'nb' from test) as R
where nb=1


Qui ne tente rien, n'a rien
mardi 12 octobre 2010 à 11:28:15 | Re : S.O.S Vue compliquée recherche solution desespérément!

gogniol

Bonjour,

Tolliap, au vu de l'énoncé le ORDER BY est sur le type et non sir l'ID.
La requete devient :

Code sql :
select id,valeur,type from (
select id,valeur,type,ROW_NUMBER() OVER(PARTITION BY id ORDER BY type asc) AS 'nb' from test) as R
where nb=1


Et voici une autre métode :

Code sql :
select A.id,A.valeur,A.type from test A
inner join (select id,min(type) type from test group by id) B
on B.id=A.id and B.type=A.type


Les deux requetes donnent le même résultat.

Codialement
dimanche 15 avril 2012 à 10:04:27 | Re : S.O.S Vue compliquée recherche solution desespérément!

tri_yann

Bonjour,

Il faut dissocier en 2 requêtes. Une qui compte par Id et une qui prend le min.
Code sql :
SELECT A.Id, B.Valeur, Count(A.Id) as NbId
FROM [MaTable] A INNER JOIN  
(SELECT Id, Min(Valeur) as valeur FROM [MaTable] GROUP BY Id) B
ON A.Id = B.Id and A.Valeur = B.Valeur
GROUP BY A.Id, B.Valeur


Affichage d'un enr par Id avec le min de Valeur et le nombre d'enr de cet Id ayant le min de valeur.

Yann


Cette discussion est classée dans : solution, type, recherche, id, vue


Répondre à ce message

Sujets en rapport avec ce message

If dans query [ par nborges ] Hello,je voudrais savoir si je peux metre un IF dans une query ex:select ID,Descr, Type,if type='R' beginselect.... as Aselect... as Bendelse if  type Probleme avec une requete [ par deadstar2 ] Bonjour à tous, Je n'ai pas un excellent niveau en sql, j'aimerais faire appel à vos connaissances pour une requete dont je n'arrive pas à obtenir ce Pbm de foreign key pas prises en compte [ par romca ] Salut voilà j'ai un pbm sous ma distrib mes foreign key ne sont pas pris en compte et pourtant j'ai aucune erreur.<?xml:namespace prefix = o ns = "urn Affichage d'une base de donnée multirelationnelle [ par XDsl13 ] Bonjour.J'ai une base de donnée avec trois tables la table principal article et deux table avec dedans referencé pour l'une des marque de vêtement et Recherche dans un champ type Text contenant du RTF [ par thiosyiasar ] Bonjour,J'ai une base contenant des fiches, la table fiche a un champs de type text contenant du texte au format RTF.Je voudrais faire une recherche d Granularité de vérou dans les MAJ de vue indexé [ par Malkuth ] Bonjours, voilà le probléme : une table Ta : (id int identity, etat tinyint) ~40.000 rows une table Tb : (id int identity, refTa int, status tin Recherche Texte intégrale / Vue [ par cbu ] Bonjour,je suis en train de mettre en place un fonctionnement de recherche texte intégrale.J'ai besoin d'effectuer ma recherche sur des champs de type Pb Requete SQL JOIN [ par gabrenicolas ] Bonjour à tous, Petit problème avec le code suivant ca ne passe pas JOIN error... Quelqu'un pourrait-il éclairer ma lanterne... le code:[code=vb Concatener dans une requete sql [ par gabrenicolas ] Bonjour à tous , Petit problème, pour une fois la requête fonctionne nickel cependant j'ai un problème avec ma concatenation.. Il y aurait-il un pr Missing operators [ par gabrenicolas ] Bonjour à tous, Je crois que j'ai besoin d'un petit peu d'aide... le code: [code=vb]sqlQuery = "SELECT Count(*) AS CountOfTYPE " & _ "FROM (USERS I


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,526 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales