tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
405
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Va7e Va7e ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    55
    Hi!

    Ich muss eine Tabelle mehrfach joinen und das Ergebnis in nur EINER Zeile zurückgeben. An sich kein Problem, doch jetzt kommt das große ABER:

    Die Tabelle beinhaltet Staffelpreise der Artikel. Aufgebaut ist die Tabelle so:

    [Artikelnummer], [Menge], [Preis], [UniqueID] (Die restlichen Spalten spielen keine Rolle, sind nur so Spalten wie Farbkennung und so dabei)

    Und die Daten, die ich habe:

    1. Artikelnummer: 1000
    Die Mengen für diesen Artikel sind: 1, 10, 50
    Und die Preise: 10, 9, 8

    2. Artikelnummer: 2000
    Mengen: 1, 10, 20, 50, 100
    Preise: 45, 43, 42, 37, 35

    Ich MUSS mit einem SQL-Befehl nur EINE Zeile zurückbekommen, die so aussieht (In dem Fall für Artikelnummer 1000):
    Menge1 = 1
    Preis1 = 10
    Menge2 = 10
    Preis2 = 9
    Menge3 = 50
    Preis3 = 8
    Menge4 = NULL
    Preis4 = NULL
    Menge5 = NULL
    Preis5 = NULL

    Bei dem anderen Artikel aus dem Beispiel werden natürlich alle Felder gefüllt. Ich weiß, mit einer laufenden Nummer o.ä. wäre es viel einfacher, aber die Tabelle darf ich NICHT erweitern.

    Mir ist bewusst, dass es eigentlich fast unmöglich ist, das Ergebnis so zu bekommen, wie ich möchte, aber vielleicht hat ja jemand doch noch eine Idee?

    Mit freundlichen Grüßen,

    Va7e
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Eine Kreuzabfrage/Pivot.
    Da gilt einmal mehr die wichtige Frage:
    Mit was für einer Datenbank arbeitst du? MySQL, Oracle, MS SQL?
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Va7e Va7e ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    55
    Ich arbeite mit MS SQL (Microsoft SQL Server 2008).
    Wie könnte so eine Kreuzabfrage aussehen?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Hab mal den Thread-Titel angepasst.
    Hoffen wir dass ein MS SQL-Profi vorbeikommt
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Va7e Va7e ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    55
    Zitat Zitat von Yaslaw Beitrag anzeigen
    Hab mal den Thread-Titel angepasst.
    Hoffen wir dass ein MS SQL-Profi vorbeikommt
    Vielen Dank!
    Ich habe es vorrübergehend anders gelöst, ich erstelle eine temporäre Tabelle, die die oben genannten Spalten beinhaltet und fülle diese dann mit den Werten aus der anderen Tabelle, so kriege ich jedes Mal das Ergebnis in einer Zeile, so wie ich es haben möchte. Würde mich aber trotzdem freuen, wenn sich das einer der Profis mal anschaut, denn sauber ist meine jetzige Lösung nicht unbedingt
     

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Yaslaw hat doch schon das passend Stichwort gegeben: PIVOT
    Bei Google "sql server pivot" und dir sollte geholfen werden
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. MySQL: Ergebnis in einer Zeile angeben.
    Von DenisCGN im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 04.10.10, 20:04
  2. Antworten: 1
    Letzter Beitrag: 28.06.09, 08:28
  3. Ein Schema mehrfach in einer Datei ausgeben
    Von kalleknispel im Forum Java
    Antworten: 0
    Letzter Beitrag: 28.01.08, 10:15
  4. [C#] MySQL Ergebnis einer ganzen Zeile in ein array schreiben
    Von RealMarkus im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 21.12.07, 17:46
  5. Mit dem Ergebnis einer Abfrage in einer anderen Tabelle suchen
    Von Robert Steichele im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 12.11.05, 10:53