2017-11-02 9 views
0

Das ist meine SQL-Abfrage:SQL Query Erste Erster Eintrag

SELECT 
    TM09_Product.F09_ProductCode, TX42_KndCmd.F42_KndCmdNo, 
    TX42_KndCmd.F42_PreProductCode 
FROM 
    TX42_KndCmd 
INNER JOIN 
    TM09_Product ON TX42_KndCmd.F42_PreProductCode = TM09_Product.F09_PreProductCode 
GROUP BY 
    TX42_KndCmd.F42_PreProductCode, TM09_Product.F09_ProductCode, 
    TX42_KndCmd.F42_KndCmdNo 
ORDER BY 
    TX42_KndCmd.F42_PreProductCode 

Das Ergebnis der Abfrage wie folgt aussieht:

F09_ProductCode F42_KndCmdNo F42_PreProductCode 
------------------------------------------------- 
    1B28G048  A01257  1A1EP0000090 
    1B28G048  A01914  1A1EP0000090 
    1B28G048  A02283  1A1EP0000090 
    1B28G048A  A01257  1A1EP0000090 
    1B28G048A  A01914  1A1EP0000090 
    1B28G048A  A02283  1A1EP0000090 
    1B28G048B  A01257  1A1EP0000090 
    1B28G048B  A01914  1A1EP0000090 
    1B28G048B  A02283  1A1EP0000090 

Es scheint, die gleiche Menge von Werten zu halten, zu wiederholen. In diesem Fall möchte ich nur den ersten Datensatz jeder Gruppe von F09_ProductCode anzeigen.

die erwarteten Ergebnisse zeigen sollte:

F09_ProductCode F42_KndCmdNo F42_PreProductCode 
------------------------------------------------- 
    1B28G048  A01257  1A1EP0000090 
    1B28G048A  A01257  1A1EP0000090 
    1B28G048B  A01257  1A1EP0000090 

Kann mir jemand Leitfaden über welche Änderungen sollte ich in machen oder aus? Danke.

+0

zur Kenntnis genommen. Ich benutze MS SQL Server. –

Antwort

1

können Sie ordnen Ihre F09_ProductCode von Row_Number() Funktion Ranking: -

SELECT * 
FROM 
(
    SELECT *, 
      ROW_NUMBER() OVER(PARTITION BY A.F09_ProductCode ORDER BY 
          (
           SELECT NULL 
          )) RN 
    FROM 
    (
     SELECT TM09_Product.F09_ProductCode, 
       TX42_KndCmd.F42_KndCmdNo, 
       TX42_KndCmd.F42_PreProductCode 
     FROM TX42_KndCmd 
      INNER JOIN TM09_Product ON TX42_KndCmd.F42_PreProductCode = TM09_Product.F09_PreProductCode 
     GROUP BY TX42_KndCmd.F42_PreProductCode, 
       TM09_Product.F09_ProductCode, 
       TX42_KndCmd.F42_KndCmdNo 
--ORDER BY TX42_KndCmd.F42_PreProductCode 

    ) A 
) AA 
WHERE AA.RN = 1; 

Ergebnis:

F09_ProductCode F42_KndCmdNo F42_PreProductCode RN 
1B28G048  A01257  1A1EP0000090  1 
1B28G048A  A01257  1A1EP0000090  1 
1B28G048B  A01257  1A1EP0000090  1 
+0

Danke. Es hat gut funktioniert. Gibt es einen einfacheren Weg dies zu tun? Ich brauche dies in C# Codes zu übersetzen ... –

+0

'var result = (von Produkt in Artikel von kneadingCommand in kneadingCommands wo product.F09_PreProductCode.Trim(). Equals (kneadingCommand.F42_PreProductCode.Trim()) neue CommonSearchItem wählen { F09_ProductCode = Produkt.F09_ProductCode, F42_KneadingCommand = kneadingCommand.F42_KndCmdNo} ' –