Jump to content

MS SQL Querry


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

 Hallo Zusammen

Das Standard Querry:

SELECT	
*
 FROM 
[NLL].[dbo].[UUT_RESULT]
Where Station_ID = 'NLICH00014'

 

Problem A: 
Zu jeder OrderNumber gibt es verschiedene Serialnummern.

Problem B;
Diese wurden natürlich unterschiedlich getestet (Start_Date_Time).

Problem C:
Eine Serialnummer könnte mehrmals in einem Auftrag getestet sein, desswegen ist für mich nur der letzte (Start_Date_Time) Zeitstempel für mich relevant,
 

Ich möchte ein Querry das mir jeden Auftrag nur einmal anzeigt und in den weiteren 3 Spalten wieviele Passed, wieviele Failed, wieviele Error von diesem Auftrag sind.

So sollte das Ziel Querry aussehen:

|Start_Date_Time|Order Number|ArticleNumber|ArticleDescription|Passed|Failed|Error
12.05.2020 | 102345210 | 1111452 | OXE7...| 10 | 2 | 0

...

 

 

 

bearbeitet von tiger88
Link zu diesem Kommentar

Bist du dir sicher dass du das start_date_time und order Number in jeder Zeile brauchst? Schaut so aus als würde das in jeder Zeile anders sein, somit kannst du es nicht summieren. 

 

Falls nicht versuch es mal so

SELECT MIN(Start_Date_Time),
ArticleNumber,
ArticleDescription,
sum(case UUT_State)
when 'Passed' then 1
else 0
end) as Passed,
sum(case UUT_State)
when 'Failed' then 1
else 0
end) as Failed,
sum(case UUT_State)
when 'Error' then 1
else 0
end) as Error
from [BBL_Result].[dbo].[UUT_RESULT]
Where Station_ID = 'IPCCHFRA0190'
Group by ArticleNumber, ArticleDescription,

 

Wenn du die Ordernumber auch noch brauchst muss die halt ergänzen wie die Artikelnummer.

Gruß MDD

 

PS: Auf deinem Screenshot schaut es so aus als wären in den Spaltenbezeichnungen Leerzeichen drinnen, dann musst du [  ]  - Klammern setzen.

Link zu diesem Kommentar

Dann eben ergänzen

SELECT 
	MIN(Start_Date_Time),
	[Order Number]
  	[Article Number],
    [Article Description},
    sum(case UUT_State)
      when 'Passed' then 1
      else 0
      end)as Passed,
    sum(case UUT_State)
      when 'Failed' then 1
      else 0
      end) as Failed,
    sum(case UUT_State)
      when 'Error' then 1
      else 0
      end) as Error
from [BBL_Result].[dbo].[UUT_RESULT]
Where Station_ID = 'IPCCHFRA0190'
Group by [Order Number], [Article Number], [Article Description]

 

Link zu diesem Kommentar

Sieht schon mal sehr gut aus. Vielen Dank erstmal!!!

 

Hat aber noch einen Fehler.. :(

 

Ich bekomme nun folgendes Bild (club.png).

 

Wenn ich mir den Auftrag nun genauer anschaue, sieht man das die Serialnummern wie oben beschrieben öfter getestet wurden. (club2.png)

 

Ich möchte nur die wirklich letzten Resultate bewerten!


D.h. Das Ergebniss müsste so aussehen: 8 passed, 1 failed, 1 error.

 

Wenn du das noch schaffst bist du mein persönlicher Held :)

 

 

 

bearbeitet von tiger88
Link zu diesem Kommentar

Duplikate entfernen Serialnummern wurden mehrfach getestet. mich interessiert der letzte datensatz (letzte datum) von einer uut

Habs geschafft:

 

SELECT 
Min(a.Start_Date_Time) as TestDate,
a.OrderNumber,
a.ArticleNumber,
a.ArticleDescription,
sum(case UUT_Status
when 'Passed' then 1
else 0
end) as Passed,
sum(case UUT_Status
when 'Failed' then 1
else 0
end) as Failed,
sum(case UUT_Status
when 'Error' then 1
else 0
end) as Error
	FROM [BBL_Result].[dbo].[UUT_RESULT] AS a
		INNER JOIN 
			(SELECT 
				 [UUT_SERIAL_NUMBER],
				 MAX([START_DATE_TIME]) AS MAX_DATE_TIME
			  FROM [BBL_Result].[dbo].[UUT_RESULT]
			  WHERE Station_ID = 'IPCCHFRA0190' AND OrderNumber <> ''
			  GROUP BY UUT_SERIAL_NUMBER ) AS b
		ON a.UUT_SERIAL_NUMBER = b.UUT_SERIAL_NUMBER and a.START_DATE_TIME = b.MAX_DATE_TIME
Group by OrderNumber, ArticleNumber, ArticleDescription
Order By TestDate DESC

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...