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!

Recommended Posts

 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

...

 

 

 

Edited by tiger88
Link to post

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 to post

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 to post

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 :)

 

 

 

Edited by tiger88
Link to post

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 to post

Reine Vermutung, aber ich befürchte dass dein Join-Kriterium nicht ausreicht und dir gelegentlich mehr Treffer als erwartet zurückbringt.

Kann mir vorstellen das entweder die OrderNumber oder die Artikelnummer oder gar beides notwendig sind. 

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...