IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Distinct in a view on a view


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Points : 68
    Points
    68
    Par défaut Distinct in a view on a view
    Bonjour,

    je bosse sur SQL SERVER 2008. Il m'arrive un truc auquel je ne m'attendais pas. Je me suis bien cassé la tête à créer une vue (plusieurs successives pour être précis) au dessus de ma table product afin de rajouter des dummy products dont j'aurais besoin dans Essbase.

    Donc j'ai finalement réussi à créer ma vue PRODUCT_WITH_DOUBLONS, mais j'ai des doublons. Donc j'ai commencé par juste créer cette dernière vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE VIEW PRODUCT_CLEAN AS(
    SELECT DISTINCT *
    FROM PRODUCT_WITH_DOUBLONS
    Ça ne marche pas, donc j'ai remplacé * par tous mes champs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE VIEW PRODUCT_CLEAN AS(
    SELECT DISTINCT <tous mes champs>
    FROM PRODUCT_WITH_DOUBLONS
    Ça ne marche pas non plus, donc j'ai tente avec un group by, ça semblait avoir du sens sur le coup:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE VIEW PRODUCT_CLEAN AS(
    SELECT DISTINCT <tous mes champs>
    FROM PRODUCT_WITH_DOUBLONS 
    GROUP BY <tous mes champs>
    Ça ne marche pas non plus, j'ai toujours mes doublons.

    Je ne comprends pas, pour moi une vue génère un resultset, si une autre vue utilise ce resultset, elle devrait le voir comme une table, non ? Bref c'est moche j'étais à rien de finir, et suis coincé sur un pauvre DISTINCT.

    Merci pour votre aide,

    Cyril

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    je ne connais pas les spécificité de sql server mais quand vous faites cette requête sans passer par une vue ça marche ..?

    J'aurai plus tendance à penser que dans votre table vous avez une valeur de colonne qui diffère d'une ligne à une autre (typiquement un timestamp)

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Sans la description sous forme DDL des tables sous-jacente (CREATE TABLE ...) impossible de vous répondre.
    De plus vous n'avez pas indiqué le texte message d'erreur.
    Commencez par respecter la charte de postage.

    En principe il n'y a pas de différence entre la requête ad hoc et la vue.

    Je soupçonne que vous vouliez faire un DISTINCT sur des données non relationnelles.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Installation vmware view agent et view client sur le même PC
    Par Mathieu.Tardif dans le forum VMware
    Réponses: 1
    Dernier message: 09/02/2012, 01h00
  2. [1.x] Include d'une view depuis une view
    Par Lopimp dans le forum Symfony
    Réponses: 2
    Dernier message: 31/03/2010, 09h29
  3. View in Browser <> view online
    Par olibara dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/01/2010, 16h06
  4. CREATE MATERIALIZED VIEW LOG ON VIEW!
    Par bardouni dans le forum Administration
    Réponses: 1
    Dernier message: 07/09/2007, 14h35
  5. Creation de "view" d'une "view"
    Par Tintou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/07/2007, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo