i eine Tabelle haben, bestehen Fruchtgruppen und Größen dh:Abfrage in Server Management Studio + Tabelle in SSRS Berichte + -verwenden wählen mit korrelierten Unterabfrage
send send
**fruit-package/size/start-date/ end-date/ **
--------------------------------------------------
apple s 2.2.16 5.2.16
apple s 7.2.16 **10.2.16**
apple s **20.2.16** 21.2.16
--------------------------------------------------
apple l 1.2.16 **5.2.16**
apple l **25.2.16** 26.2.16
apple l 26.2.16 27.2.16
-------------------------------------------------
orange m 1.1.16 2.1.16
orange m 3.1.16 **4.1.16**
orange m **24.1.16** 25.1.16
---------------------------------------------------
ich brauche, für jede spezifische Gruppe von Obst -Paket und Größe (wie Apfel + klein), um die max Tage in der Gruppe zu finden, übergeben zwischen ein Paket Send-End-Datum an das folgende Paket, in der Gruppe, Send-Start-Tag und Wählen Sie dann das Send-End-Datum und folgen Sie dem Startdatum und berechnen Sie , dass max diff zwischen diesen beiden Werten und setzen sie in der Ergebnistabelle für die jeweilige Gruppe, tut es für jede Gruppe
so die Ergebnistabelle wäre
send send
**fruit-package/ size/start-date/end-date/ **
--------------------------------------------------
apple s 20.2.16 10.2.16
--------------------------------------------------
apple l 25.2.16 5.2.16
-------------------------------------------------
orange m 24.1.16 4.1.16
---------------------------------------------------
Ich habe versucht, diese in Teilen zu tun. ersten Teil: für jede Gruppe von Obst - alle Kombination von:
(Obst-Paket) + (Größe) + (Strom end_date) und der start_date des Pakets folgen wie folgt aus:
select P.fruit
,P.size
,P.end_date
,(SELECT top 1 (pa.start_date)
FROM packages as pa
WHERE pa.start_date >= pa.end_date
and p.fruit=pa.fruit and p.size=pa.size
order by pa.start_date desc ) as start
into #temp
from packages p
group by p.fruit
, P.size
,p.end_date
und zweite Schritt wäre, finden simplly die Zeile mit dem größten Tag-diff in jeder Gruppe
aber den ersten Teil werde ich nicht Nullwert geschrieben Arbeits- als Starttermin bekam, oder ein end_date und nicht für jede Gruppe von innen wählen Sie - warum und , wie Sie es korrigieren?
bitte helfen
dank
schöne antwort, vielen dank !! :), aber ich überprüfe, und es scheint zu sein, dass ich sql 2012 nicht verwenden darf, es wird nicht mit dem ganzen System korrelieren, also habe ich nicht die Lead() Funktion, könnten Sie bitte helfen, umzuschreiben passt es zu SQL 2008? Danke vielmals!! – liori
Ich habe eine Abfrage hinzugefügt, die nicht die Lead-Funktion verwendet, also sollte für Sie auf 2008 arbeiten. –
Vielen Dank, es hat sehr geholfen :), du bist der Beste! – liori