0
votes

Identifier si un enregistrement a de nombreux produits

J'utilise à la fois l'accès et la puissance bi pour résoudre ce problème, mais en vain. En principe, cela est en fait assez simple, mais j'ai besoin de le faire de manière particulière pour les calculs de tarification ultérieurs.

essentiellement, j'ai une table avec des transactions avec ID de service. Cet ID de service apparaîtra plusieurs fois avec un ou plusieurs produits. Si ce n'est qu'un seul produit, j'ai besoin de remplir une colonne avec "produit unique" sinon "multiple produit". Voir ci-dessous pour une illustration: xxx


0 commentaires

3 Réponses :


0
votes

Vous pouvez utiliser iif () code> avec existe code> pour peupler la nouvelle colonne

select
  t.serviceid,
  t.product,
  iif(
    exists (
      select 1 from tablename where serviceid = t.serviceid and product <> t.product
    ),
    'Multiple Products',
    'Single Product'
  ) as type
from tablename as t


0 commentaires

1
votes

in Power BI, vous pouvez le faire dans la requête d'alimentation:

DAX Type = 
VAR CountProducts = 
    CALCULATE(
        DISTINCTCOUNT ( Table1[Product] ),
        ALLEXCEPT ( Table1, Table1[Serviceid] )
    )
RETURN
    SWITCH ( 
        CountProducts,
        1, "Single Product",
        "Multiple Products"
    )


6 commentaires

Cela a travaillé un régal. Merci beaucoup! Aussi merci de formater ma table.


Malheureusement, cela ne fonctionne pas dans un fichier avec 200 000 rangées. Il ne conserve que calculer et augmenter la taille du fichier


Avez-vous essayé le code Dax, en tant que colonne calculée? Fonctionne assez rapidement sur un ensemble de données de test de lignes de 250 km. L'option de requête de puissance sera lente avec de gros volumes de données.


Ok, j'ai juste essayé la mesure Dax mais je ne vois que des "produits uniques", donc, quelque part, la formule ne fonctionne pas. Ma table a plus de colonnes FYI.


Le contexte des autres colonnes affectera le résultat, dans ce cas. J'ai édité le code, pour permettre d'autres colonnes ( allexcept (Table1, Tablef [ServiceId]) )


Hey Olly, comment as-tu appris le pivot de pouvoir et la requête? Je fais des progrès lents mais je veux trouver de meilleures ressources.



0
votes

Utilisez une sous-requête simple: xxx


1 commentaires

Merci va ça aller.