Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

leider habe ich momentan Schwierigkeiten einen Query zu schreiben.

Ich habe folgende Tabelle

Tab1

ID   Gebiet   Marke  Status

1    Nord      A        verkauft

2    Süd       B        verkauft

3    Nord      B        verkauft

4    Nord      A        offen

5    Süd       B        offen
Nun will ich einen Query derm ir das Ergbenis liefert:

Gebiet   Marke   Verkauft   Offen

Nord     A          1            1

Nord     B          1             0

Süd      B          1             0
Ich hab shcon 1000 Query probiert und nie hat es funktioniert.

select

  gebiet, 

  marke,

  count(status) as AnzahlVerkauft

from

   tab1

where 

  status = 'verkauft'

group by  gebiet, 

  marke,

Diese Version funktioniert, allerdings nur für einen Status. In diesem Fall 'verkauft'. Wie ich jetzt noch die Spalte AnzahlOffen und andere hinzubekomme weiß ich nicht.

Steh ich auf dem Schlauch oder ist die Aufgabe schwer?

Gruß hyperion

Es handelt sich um MSAccess.

Mit dem Pivottabellenassisten habe ich es bereits probiert und bin leider gescheitert. Ein manueller AUfbau ist auch nciht möglich, da MSAccess kein Case unterstützt.

Mit Subselects habe ich es auch versucht. Leider bekomme ich hier bei ANzahlVerkauft die richtigen Werte und bei AnzahlOffen die selben Werte wie bei AnzahlVerkauft -> falsch

SELECT 

  ssev.Gebiet, 

  ssev.Marke, 

  ssev.Niederlassung, 

  Count(ssev.Status) AS AnzahlVerkauft,

  count(sso.status) as AnzahlOffen

FROM 

  (SELECT

     Projekte.Gebiet,

     Produkte.Marke, 

     Vertriebspartner.Niederlassung,

     Projekte.Status AS Status

  FROM 

    Vertriebspartner

  INNER JOIN 

    (Produkte

  INNER JOIN 

     Projekte 

  ON 

     Produkte.ModellID=Projekte.ModellID) 

  ON 

     Vertriebspartner.VertriebspartnerID=Projekte.VertriebspartnerID

  WHERE

    projekte.status = 'endverkauft'

   ) AS ssev,

   (SELECT

     Projekte.Gebiet,

     Produkte.Marke, 

     Vertriebspartner.Niederlassung,

     Projekte.Status AS Status

   FROM 

     Vertriebspartner

   INNER JOIN 

    (Produkte

   INNER JOIN 

     Projekte 

   ON 

     Produkte.ModellID=Projekte.ModellID) 

   ON 

     Vertriebspartner.VertriebspartnerID=Projekte.VertriebspartnerID

   WHERE

      projekte.status = 'offen'

   ) AS sso

GROUP BY ssev.Gebiet, ssev.Marke, ssev.Niederlassung;

Gruß hyperion

Nah, das is so einfach, da braucht man keine Subselects oder Pivot


SELECT gebiet,

	   marke,

	   SUM(CASE WHEN verkauft = 'verkauft' THEN 1 ELSE 0 END) [verkauft],

	   SUM(CASE WHEN verkauft ='offen' THEN 1 ELSE 0 END) [offen]

FROM tabelle

GROUP BY gebiet, marke

Das wichtige dran is das Prinzip. Was den Access Dialekt angeht :

iif(verkauft='verkauft',1,0),

iif(verkauft='offen',1,0)

Gruß

Sven

Ich habe leider keine MS Systeme, somit kann ich es nicht testen. Ich denke das mit dem Pivot sollte schon das richtige sein.

Baue doch das Statement erst für einen Wert auf, dann für den zweiten usw.

Im Moment verstehe ich nicht, warum Du Joins brauchst, denn in Deinem ersten Post hattest Du die nicht erwähnt. Wenn Du die Joins brauchst, dann mache doch daraus einen View, den Du dann in Deiner Pivot Tabelle verwendest.

Hallo,

ich habe es jetzt doch noch mit dem Pivotassistenten geschafft.

Die Joins habe ich am Anfang nicht erwähnt, weil ich das erste Beispiel noch auf das wesentliche beschränken wollte.

Und Danke für den TIpp mit dem iff, das kann ich bestimtm noch irgendwann brauchen.

Gruß hyperion

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.