none
Aus einem Datensatz mehrere Datensätze bilden RRS feed

  • Frage

  • Ich möchte aus der Tabelle [w_artikelpreise] die relevanten Daten in die Tabelle [w_staffelpreise] einfügen:

    CREATE TABLE         [w_artikelpreise]
                ([Adresse_GUID]            uniqueidentifier   null
                ,[Kurztext]                      nvarchar(100)     null
                ,[artikel_adress_GUID]   uniqueidentifier   null
                ,[artikel_GUID]               uniqueidentifier    null
                ,[art_nr_original]            nvarchar(100)      null
                ,[ek2]                             float                      null
                ,[ek2_mg]                      float                      null    
                ,[ek2_rab]                      float                     DEFAULT 0    
                ,[ek3]                             float                     null
                ,[ek3_mg]                      float                     null    
                ,[ek3_rab]                      float                    DEFAULT 0    
                ,[ek4]                             float                     null
                ,[ek4_mg]                      float                     null    
                ,[ek4_rab]                     float                     DEFAULT 0    
                ,[ek5]                             float                     null
                ,[ek5_mg]                      float                     null    
                ,[ek5_rab]                     float                     DEFAULT 0    
                ,[ek6]                            float                     null
                ,[ek6_mg]                     float                     null    
                ,[ek6_rab]                     float                     DEFAULT 0    
                );
    GO

    INSERT INTO        [w_artikelpreise]
    VALUES            
    ('ABA945C2-E2D7-4AED-B71D-777795A5DD1D', 'SC',    '92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2',    'A838FE00-9FE3-4866-8EFC-00025035E42A',    '55099957',    20.00,    2,    12,    19.85,    4,    12,    19.70,    6,    12,    19.65,    8,    12,    19.60,    10,    12),
    ('E66915A9-F3C8-4546-8C9F-C88F86741AF8', 'ADV',    'EE7A1590-9213-453A-95C9-E7F69C43F795',    '8B9EC3A4-3203-41CE-9B18-0002B577BBFF',    '888518',    NULL,    NULL,    0,    NULL,    NULL,    0,    NULL,    NULL,    0,    NULL,    NULL,    0,    NULL,    NULL,    0),
    ('ABA945C2-E2D7-4AED-B71D-777795A5DD1D', 'SC',    '945F29FB-6F7B-4188-A47D-8D46D9201A3B',    '8B9EC3A4-3203-41CE-9B18-0002B577BBFF',    '62518033',    18.80,    10,    12,    18.75,    15,    12,    18.60,    20,    12,    NULL,    NULL,    0,    NULL,    NULL,    0)
    ;
    GO

    CREATE TABLE         [w_staffelpreise]
                ([artikel_adress_GUID]    uniqueidentifier   null
                ,[Menge]                          float                     null
                ,[Preis]                             float                     null    
                ,[Rabatt]                          float                     null
                );
    GO

    Ergebnis in der Tabelle [w_staffelpreise]
    =========================================

    [artikel_adress_GUID]            [Menge]    [Preis]    [Rabatt]
     -------------------------------------------------------------------------------------  
    92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2     2    20.00    12
    92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2     4    19.85    12
    92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2     6    19.70    12
    92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2     8    19.65    12
    92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2   10    19.60    12
    945F29FB-6F7B-4188-A47D-8D46D9201A3B    10    18.80    12
    945F29FB-6F7B-4188-A47D-8D46D9201A3B    15    18.75    12
    945F29FB-6F7B-4188-A47D-8D46D9201A3B    20    18.60    12

    Kann mir jemand sagen, wie dieses Problem gelöst werden kann?

    Vielen Dank für Eure Hilfe.

    Donnerstag, 17. Mai 2018 10:39

Antworten

  • Hallo Fraport,

    SELECT [artikel_adress_GUID]
          ,[ek]
          ,[ek_mg]
          ,[ek_rab]
    FROM
    (
      SELECT [artikel_adress_GUID]
          ,[ek2] AS [ek]
          ,[ek2_mg]	AS [ek_mg]
          ,[ek2_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek3] AS [ek]
          ,[ek3_mg]	AS [ek_mg]
          ,[ek3_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek4] AS [ek]
          ,[ek4_mg]	AS [ek_mg]
          ,[ek4_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek5] AS [ek]
          ,[ek5_mg]	AS [ek_mg]
          ,[ek5_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek6] AS [ek]
          ,[ek6_mg]	AS [ek_mg]
          ,[ek6_rab] AS [ek_rab]
      FROM [w_artikelpreise]
    
    ) AS t1
    
    WHERE ek IS NOT NULL
    --AND [artikel_adress_GUID] = '92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2'
    --AND [artikel_adress_GUID] = '945F29FB-6F7B-4188-A47D-8D46D9201A3B'

    Schönen Abend.

    Donnerstag, 17. Mai 2018 19:39

Alle Antworten

  • insert into w_staffelpreise

    select guid, menge1, preis1, rabatt1 from w_artikelpreise where menge1<>0 or preis1 <> 0 or rabatt1<>0
    union all
    select guid, menge2, preis2, rabatt2 from w_artikelpreise where menge2<>0 or preis2 <> 0 or rabatt2<>0
    union all
    :

    Donnerstag, 17. Mai 2018 13:31
  • Hallo Fraport,

    SELECT [artikel_adress_GUID]
          ,[ek]
          ,[ek_mg]
          ,[ek_rab]
    FROM
    (
      SELECT [artikel_adress_GUID]
          ,[ek2] AS [ek]
          ,[ek2_mg]	AS [ek_mg]
          ,[ek2_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek3] AS [ek]
          ,[ek3_mg]	AS [ek_mg]
          ,[ek3_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek4] AS [ek]
          ,[ek4_mg]	AS [ek_mg]
          ,[ek4_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek5] AS [ek]
          ,[ek5_mg]	AS [ek_mg]
          ,[ek5_rab] AS [ek_rab]
      FROM [w_artikelpreise]
      UNION ALL
      SELECT [artikel_adress_GUID]
          ,[ek6] AS [ek]
          ,[ek6_mg]	AS [ek_mg]
          ,[ek6_rab] AS [ek_rab]
      FROM [w_artikelpreise]
    
    ) AS t1
    
    WHERE ek IS NOT NULL
    --AND [artikel_adress_GUID] = '92C4ED39-8B3F-4937-8553-E1B5BC8AFDC2'
    --AND [artikel_adress_GUID] = '945F29FB-6F7B-4188-A47D-8D46D9201A3B'

    Schönen Abend.

    Donnerstag, 17. Mai 2018 19:39
  • Klappt super. Ich bedanke mich bei Euch.

    Einfach klasse.

    Freitag, 18. Mai 2018 08:39
  • Hallo Fraport,

    Was das Markieren als Antwort angeht, möchte ich Dich darauf hinweisen, dass es gilt, den Beitrag mit der richtigen Lösung als Antwort zu markieren. Dadurch wird die Lösung hervorgehoben und für künftige Leser dieses Threads übersichtlicher. In diesem Thread ist das die Antwort von Joerg_x und in Deinem anderen Thread die von Christoph und es wäre nett von Dir, wenn Du sie als Antwort markieren würdest und dies auch in künftigen Threads berücksichtigst. Außerdem kannst Du für die hilfreichen Beiträge abstimmen. Den eigenen Beitrag zu markieren macht dann Sinn, wenn Du selbst zur Lösung gekommen bist und sie nicht schon im Thread geschildert wurde. Ich verweise Dich auf die Forenregeln:

    ·        Lösungsbeiträge als “Die Antwort“ markieren
    Bitte markieren Sie den Beitrag, der zur Lösung geführt hat, als "Die Antwort". Durch Bewerten eines Beitrags als "Die Antwort" können andere Teilnehmer die Lösung schneller finden. Außerdem können Sie dem Benutzer, der die Antwort eingereicht hat, für seinen Beitrag danken und zur Steigerung der Antwortqualität in der Diskussionsgruppe beitragen.
    [Quelle: Forenregeln]

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 18. Mai 2018 08:59
    Moderator