2 Abfragen auf einer Tabelle

deMischa

Neuer Benutzer
Beiträge
2
Hallöchen alle zusammen

Ich habe im Moment ein Problem, bei dem ich Hilfe gebrauchen könnte. Ich habe eine Tabelle, die Versionen von Artikeln beinhaltet. Das heißt, ein Artikel kann mehrfach vorkommen, muss aber nicht.

Ich möchte nun herausfinden, welche Artikel gestern neu hinzugefügt wurden, also praktisch Artikel, von denen es nur eine Version gibt. Dafür habe ich bereits 2 funktionierende Abfragen.

Ermittlung aller Artikel von gestern:
SELECT [VERCatUID]
FROM [CatalogueVersions]
WHERE Convert(date, [VERDateCreated]) >= dateadd(day,datediff(day,1,GETDATE()),0)
AND Convert(date, [VERDateCreated]) < dateadd(day,datediff(day,0,GETDATE()),0)

Ermittlung aller Artikel mit nur einer Version:
SELECT [VERName], COUNT([VERName])
FROM [CatalogueVersions]
GROUP BY VERName
HAVING COUNT([VERName]) = 1

Ich schaffe es jetzt nur nicht, diese beiden Abfragen auf die gleiche Tabelle so zusammen zu führen, dass das richtige Ergebnis raus kommt. Hauptproblem ist, dass ich die Reihenfolge nicht bestimmt bekomme. Praktisch alle Kataloge haben nur eine Version, wenn man sich den obigen Zeitraum alleine anguckt. Aber das Summieren der Artikel müsste auf den gesamten Zeitraum stattfinden, und DANN müssten nur noch die mit einer Version in dem angegebene Zeitraum angezeigt werden.

Ich hoffe, dass ist verständlich formuliert. Kann mir jemand bei diesem Problem helfen!? Vielen Dank im Voraus!
Mischa
 
Werbung:
Ich möchte nun herausfinden, welche Artikel gestern neu hinzugefügt wurden, also praktisch Artikel, von denen es nur eine Version gibt.

Kannst Du mal eine kleine Beispiel-Tabelle zeigen mit Demo-Daten, und was rauskommen soll? So ganz versteh ich Deine Kriterien nicht. Was ist mit Artikeln, die schon länger, aber nur mit einer Version drin sind?
 
Die müssten dann aus der Selektion herausfliegen. Es handelt sich um einen Automatismus, der jede Nacht die neu hinzugefügten Artikel exportieren soll und dabei halt alles ignoriert, das schon älter ist oder schon mehr als eine Version hat.

Beispiel wäre:

01.10.2015 | Artikel 1
01.10.2015 | Artikel 2
01.10.2015 | Artikel 3
30.09.2015 | Artikel 1
30.09.2015 | Artikel 4
29.09.2015 | Artikel 1

In diesem Beispiel dürften nur die Artikel 2 und 3 als Ergebnis angezeigt werden, da Artikel 1 zwar in den Zeitraum passt, aber bereits andere Versionen außerhalb des Zeitraums hat.
 
Werbung:
Oracle-Syntax... Aber das sollte es tun...
Code:
Select vercatuid
From   catalogueversions
Group  By vercatuid
Having Count(1) = 1
And    Min(verdatecreated) >= :deine_var
 
Zurück
Oben