tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
440
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 habe eine Tabelle, in der ich Artikelbilder eintragen kann (Artikelnummer und Pfad zum Bild). Maximal sind drei dieser Bilder erlaubt. Es kommt jedoch trotzdem manchmal dazu, dass pro Artikel mehr, als diese drei Verlinkungen gespeichert werden.

    Das Problem bei der ganzen Sache ist, dass ich beim Hochladen der Bilder eben nur maximal die drei Bilder pro Artikel auswählen darf.

    Wie kann ich einen SQL-Befehl so bauen, indem ich pro Artikel maximal drei Einträge selektieren kann? Mit TOP(3) kann ich natürlich nicht arbeiten, da in der Tabelle logischerweise mehrere Artikelbilderverlinkungen vorhanden sind.

    Ich habe es mit ROW_NUMBER versucht, aber ich darf in der Ausgabe des Befehls nur zwei Spalten angezeigt haben (Artikelnummer und Pfad), da das Ergebnis für eine INSERT-Anweisung benutzt wird.

    Ist ziemlich schwer, aber vielleicht weiß jemand eine Lösung

    MfG

    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
    Ich kenne MS-SQL nicht.
    Aber die ROW_NUMBER, müsste doch nur ins WHERE, nicht in den SELECT-Teil.
     
    ---------------------------------------------------------------------------------------------------
    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
    Frame Frame ist offline Grünschnabel
    Registriert seit
    Feb 2012
    Ort
    Bremerhaven
    Beiträge
    2
    Hallo Va7e,

    das Problem müsste eigentlich wie folgt zu lösen sein:

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SELECT Artikel, Bilderpfad FROM
    (
        SELECT 
        Artikel, 
        Bilderpfad, 
        ROW_NUMBER() 
        OVER (partition BY Artikel ORDER BY Artikel, Bilderpfad) AS RowNumber 
        FROM TabelleA
    ) AS a
    WHERE RowNumber <= 3


    Mit

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SELECT Artikel, Bilderpfad FROM
    (
        SELECT 
        Artikel, 
        Bilderpfad, 
        ROW_NUMBER() 
        OVER (partition BY Artikel ORDER BY Artikel, Bilderpfad) AS RowNumber 
        FROM TabelleA
    ) AS a
    WHERE RowNumber > 3

    können dann die Datensätze ausgegeben werden, die aufgrund der Beschränkung nicht hochgeladen werden konnten.

    Gruß Frame
    Geändert von Frame (14.02.12 um 17:57 Uhr)
     

Ähnliche Themen

  1. Maximal 20 Links pro Seite
    Von multimolti im Forum PHP
    Antworten: 9
    Letzter Beitrag: 02.03.07, 16:54
  2. Textarea maximal 100 Zeichen?
    Von chpa im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 06.04.04, 12:32
  3. Varaible maximal erhöhen
    Von Fluctuator im Forum PHP
    Antworten: 2
    Letzter Beitrag: 27.04.03, 13:04
  4. maximal 10 .....
    Von mille im Forum PHP
    Antworten: 2
    Letzter Beitrag: 19.09.01, 09:02