Ich habe diese TabelleWie() in eine andere Spalte jede Zeile SUM
| ID_prim | ID (FKey) | Date | Moved Items |
|:-----------|:------------|-------------:|:------------:|
| 1003 | 12_1 | nov 2013 | 2 |
| 1003 | 12_2 | okt 2013 | 3 |
| 1003 | 12_3 | dec 2014 | 5 |
| 1003 | 12_4 | feb 2015 | 10 |
| 1003 | 12_5 | apr 2012 | 1 |
| 1003 | 12_11 | jan 2011 | 5 |
Ich möchte die gleiche Tabelle abzufragen wie folgt:
- Bestellen Sie das Datum von desc
- Summe jeder 'Artikel verschieben' pro Zeile
- Stoppen Sie die Abfrage, wenn die Summe meinen gewünschten Betrag erreicht
- Mein gewünschter Betrag beginnt mit der MAX 'Summe Summe '(26) und subtrahiert den Betrag I (16) wollen
Wie so
| ID_prim | ID (FKey) | Date | Moved Items | Summed Total |
|:-----------|:------------|-------------:|:------------:|:------------:|
| 1003 | 12_4 | feb 2015 | 10 | 26
| 1003 | 12_3 | dec 2014 | 5 | 16
| 1003 | 12_3 | nov 2013 | 2 | 11 <
| 1003 | 12_4 | okt 2013 | 3 | 9
| 1003 | 12_5 | apr 2012 | 1 | 6
| 1003 | 12_11 | jan 2011 | 5 | 5
Ich möchte die Abfrage stoppen, wenn i "Summed Total" (26) erreichen - 16 = 10. So Zeige mir alles von 10> Ich würde nur diese Werte in der Datenbank bekommen.
| ID_prim | ID (FKey) | Date | Moved Items | Summed Total |
|:-----------|:------------|-------------:|:------------:|:------------:|
| 1003 | 12_4 | feb 2015 | 10 | 26
| 1003 | 12_3 | dec 2014 | 5 | 16
| 1003 | 12_3 | nov 2013 | 2 | 11
Was ich habe, ist die folgende
SELECT
T1.ID_prim, T1.ID as ID (FKey), T1.Moved_Items as Moved Items, t1.Date, SUM(T2.MOVEMENTQTY) AS Summed Total
FROM Table1 T1
INNER JOIN Table1 T2 ON T2.ID <= T1.ID
inner join table2 inout on T1.ID_prim = inout.ID_prim
AND T2.ID_prim = inout.ID_prim
AND T2.ID_prim = T1.ID_prim
where t1.ID_prim = 1003
and t2.ID_prim = 1003
and inout.ISSOTRX = 'N'
GROUP BY T1.ID_prim, T1.Moved Items, t1.Date
HAVING SUM(T2.Moved Items) <= 16
order by t1.UPDATED desc
Aber die Summe funktioniert nicht wirklich. Kann mir jemand helfen, die SQL-Anweisung für Oracle DB zu machen, die meine Wunschtabelle drucken wird?
'nov 2013' ist kein ** DATUM **. Bitte geben Sie einige Beispieldaten an, die 'to_date' für die Datumswerte verwenden. –
@LalitKumarB Ich habe das obige Datum nicht geschrieben. In der DB sieht meine Datumsspalte wie folgt aus: "2015-06-08 11:52:00" und es ist ein DATE-Wert. Aber das ist nicht der Schwerpunkt hier. Der Hauptfokus liegt auf der Summierten Summe und wie man iteriert – Igoranze
Sollte nicht die Gesamtsumme "27" und nicht "26" sein? –