Jump to content

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

Share this post


Link to post

Ich bin in diesem Bereich absolut Lost :)
Könntest du mir ein Beispiel mit "Passed" vielleicht zeigen so dass ich das für die anderen Faktoren adaptieren kann?

Share this post


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.

Share this post


Link to post

Ich muss wissen wann ungefähr der Auftrag lief... und ja die Auftragsnummer(OrderNumber) ist wichtig... ich will wissen wieviele zu dem Auftrag Passed und Failed usw. sind..

Share this post


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]

 

Share this post


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

Share this post


Link to post

Wie kommst du auf 1 failed, ein error? Wenn man die Stati in dem letzten Screenshot zusammenzählt passt das Ergebnis doch.

Share this post


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

 

Share this post


Link to post

okaaay,

Das konnte ich aus deiner Beschreibung vorhin noch nicht erkennen. Aber schön das du es lösen konntest.

Share this post


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. 

 

Share this post


Link to post

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.   Restore formatting

  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.


Werbepartner:



×
×
  • Create New...