Mam sytuację, w której muszę pobrać "ilość skonsumowaną" z jednej tabeli i zastosować ją do drugiej tabeli, która ma 1 lub więcej wierszy, które są "połączonymi partiami" o ilościach . Nie jestem pewien, jak opisać to lepiej, oto co mi chodzi z perspektywy tabeli:SQL - Odejmowanie wartości zubożających z wierszy
Table Pooled_Lots
----------------------------
Id Pool Lot Quantity
1 1 1 5
2 1 2 10
3 1 3 4
4 2 1 7
5 3 1 1
6 3 2 5
Table Pool_Consumption
----------------------------
Id PoolId QuantityConsumed
1 1 17
2 2 8
3 3 10
muszę wynikowy zestaw wierszy z zapytania SQL, która będzie wyglądać następująco:
Pool Lot Quantity QuantityConsumed RunningQuantity RemainingDemand SurplusOrDeficit
1 1 5 17 0 12 NULL
1 2 10 17 0 2 NULL
1 3 4 17 2 0 2
2 1 7 8 0 1 -1
3 1 1 10 0 9 NULL
3 2 5 10 0 4 -4
So, Pool_Consumption.QuantityConsumed musi być "wartością zubażania" odjętym od wierszy od Pooled_Lots, gdzie Pool_Consumption.PoolId = Pooled_Lots.Pool. Nie mogę dowiedzieć się, jak można stwierdzić, kwerendy, która mówi:
- Jeśli nie w ostatnim rzędzie, AmtConsumedFromLot = Ilość - QuantityConsumed jeśli QuantityConsumed < ilość, inny Ilość
- W przypadku większej liczby wierszy, QuantityConsumed = QuantityConsumed - Ilość
- pętli aż do ostatniego wiersza
- czy ostatnia rzędu, AmtConsumedFromLot = QuantityConsumed
Załóżmy id jest kluczem głównym, a cel DB SQL 2 005.
Edycja: Ponieważ ludzie są głoszenia jestem „nie daje wystarczających informacji, proszę zamknąć ten” Tu jest więcej: Jest NO zestaw dużo, że Pool_Consumption czerpie, musi wyciągnąć z wszystkich partii gdzie Pool_Consumption.PoolId = Pooled_Lots.Pool, dopóki QuantityConsumed nie zostanie całkowicie wyczerpane lub odejmuję od ostatniego podzbioru Pooled_Lots, gdzie Pool_Consumption.PoolId = Pooled_Lots.Pool
Nie wiem, jak to wyjaśnić. To nie jest zadanie domowe, to nie jest wymyślone "ćwiczenie myślowe". Potrzebuję pomocy, aby dowiedzieć się, jak poprawnie odjąć QuantityConsumed przeciwko wielu wierszy!
Nie wiem, dlaczego ludzie są do prawa głosu na to pytanie, masz jakieś poważne problemy granulacji w danych. Tabela 'Pool_Consumption' nie określa, z której części pochodzą zużyte jednostki. Naprawiłem też literówkę. -1 – JohnB
Nieważne, nie zamierzam zawracać sobie głowy twoimi literami. Przynajmniej poświęć trochę więcej czasu na uzyskanie danych na temat tego pytania! Jednak twój projekt jest wadliwy na samym początku. (głosowałam nad zamknięciem) – JohnB
@JohnB To jest właśnie to, z czym obecnie się stykam, upraszczam tyle, ile mogę i bez ujawniania poufnych danych z mojej pracy.Zamiast być aroganckim i głoszącym, że zadaję głupie pytanie, niegodne głosów, być może możesz mnie oświecić, gdzie muszę dodać "ziarnistość", aby dojść do punktu, w którym mogę łatwiej uzyskać pożądaną produkcję? – Irinotecan