Rozdzielenie liczb na zbiory MS SQL

Rozdzielenie liczb na zbiory MS SQL

Wątek przeniesiony 2020-09-14 09:56 z Bazy danych przez Patryk27.

WA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Witam,
Potrzebuję podzielić poniższe dane na samochody (1 samochód: max waga 24.000, max palet 30)
Chodzi mi o maksymalne wykorzystanie samochodu, oraz pobieranie danych w kolejności w/g kolumny Numer.
Z góry dziękuję za pomoc.

Numer Palet Waga
14485 1 300,00
14489 1 610,00
14493 1 560,00
14495 1 320,00
14496 1 410,00
14497 1 70,00
14498 1 800,00
14499 5 4 400,00
14500 3 1 950,00
14501 2 1 020,00
14503 1 680,00
14504 1 740,00
14506 1 790,00
14508 2 2 570,00
14509 1 840,00
14510 3 1 960,00
14511 1 690,00
14513 1 300,00
14514 1 450,00
14515 1 410,00
14517 1 460,00
14518 1 350,00
14519 1 570,00
14520 1 300,00
14521 1 1 140,00
14522 1 610,00
14523 2 1 270,00
14524 1 1 190,00
14526 1 920,00
14527 1 70,00
14528 1 360,00
14529 1 670,00
14530 2 2 030,00
14532 1 680,00
14533 1 380,00
14534 1 940,00
14535 2 1 190,00
14536 2 1 200,00
14538 1 760,00
14539 2 1 280,00
14540 1 380,00
14542 1 250,00
14543 1 1 070,00
14545 1 390,00
14546 1 790,00
14547 1 380,00
14548 1 810,00
14549 1 960,00
14550 3 2 810,00
14552 1 590,00
14553 2 1 920,00
14554 1 280,00
14555 1 20,00
14556 1 450,00
14557 3 2 070,00
14558 1 920,00
14559 2 1 330,00
14560 1 380,00
14561 1 370,00
14562 1 440,00
14563 1 500,00
14564 1 1 100,00
14565 1 390,00
14566 2 1 230,00
14567 2 1 130,00
14568 1 400,00
14569 1 640,00
14570 1 710,00
14572 1 660,00
14573 1 650,00
14574 1 80,00
14580 2 910,00
14583 1 210,00
14585 2 1 060,00
14592 2 2 080,00
14593 1 960,00

Chciałbym uzyskać tego typu dane:

Numer Palet Waga Numer samochodu
14485 1 300,00 4
14489 1 610,00 2
14493 1 560,00 1
14495 1 320,00 4
14496 1 410,00 3
14497 1 70,00 4
14498 1 800,00 2
14499 5 4 400,00 2
14500 3 1 950,00 1
14501 2 1 020,00 1
14503 1 680,00 1
14504 1 740,00 1
14506 1 790,00 1
14508 2 2 570,00 1
14509 1 840,00 1
14510 3 1 960,00 1
14511 1 690,00 1
14513 1 300,00 4
14514 1 450,00 3
14515 1 410,00 3
14517 1 460,00 3
14518 1 350,00 4
14519 1 570,00 1
14520 1 300,00 4
14521 1 1 140,00 1
14522 1 610,00 1
14523 2 1 270,00 1
14524 1 1 190,00 1
14526 1 920,00 1
14527 1 70,00 4
14528 1 360,00 3
14529 1 670,00 3
14530 2 2 030,00 1
14532 1 680,00 3
14533 1 380,00 3
14534 1 940,00 2
14535 2 1 190,00 2
14536 2 1 200,00 2
14538 1 760,00 2
14539 2 1 280,00 2
14540 1 380,00 3
14542 1 250,00 4
14543 1 1 070,00 1
14545 1 390,00 3
14546 1 790,00 2
14547 1 380,00 3
14548 1 810,00 2
14549 1 960,00 2
14550 3 2 810,00 1
14552 1 590,00 1
14553 2 1 920,00 2
14554 1 280,00 4
14555 1 20,00 4
14556 1 450,00 3
14557 3 2 070,00 2
14558 1 920,00 2
14559 2 1 330,00 3
14560 1 380,00 3
14561 1 370,00 3
14562 1 440,00 3
14563 1 500,00 2
14564 1 1 100,00 2
14565 1 390,00 3
14566 2 1 230,00 3
14567 2 1 130,00 3
14568 1 400,00 3
14569 1 640,00 3
14570 1 710,00 2
14572 1 660,00 3
14573 1 650,00 3
14574 1 80,00 4
14580 2 910,00 3
14583 1 210,00 4
14585 2 1 060,00 3
14592 2 2 080,00 2
14593 1 960,00 2

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
1

Co juz zrobiłeś, i co Cię zatrzymało?

WA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Jeszcze nic, nie wiem jak się za to zabrać.

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
2

Lecisz po kolei z góry i zapełniasz pierwszy samochód jak zapełnisz to zapełniasz drugi. Jak trafisz na pozycje, która jest w stanie dopełnić któreś auto to wrzucasz do tego samochodu. Takie rozwiązanie może nie być optymalne. Nie zrobisz tego jednym selectem.

WA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Muszę mieć maksymalne wykorzystanie miejsca i wagi. Nie mogę po prostu lecieć od góry bo zapełnię np. kilogramy a nie będzie wymaganej ilości palet lub odwrotnie zapełnię ilość palet a waga będzie za mała.

superdurszlak
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 2003
4

Maksymalne załadowanie jednego samochodu ładunkami o różnej masie to problem plecakowy

Załadowanie samochodu gdzie masz ograniczenie zarówno na liczbę palet jak i masę to dodatkowo problem wielokryterialny / z wieloma ograniczeniami

Załadowanie w ten sposób wielu samochodów naraz (takich samych? Różnych?) To wariacja z wieloma plecakami

Proponuję przenieść to do działu "Algorytmy i Struktury Danych", jak już będziesz mieć w rękach rozwiązanie to pewnie nie będzie chciało Ci się pisać tego w SQL ;)

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5555
2
superdurszlak napisał(a):

Maksymalne załadowanie jednego samochodu ładunkami o różnej masie to problem plecakowy

@superdurszlak nie wspomniał jeszcze że problem plecakowy nie jest rozwiązywalny w czasie wielomianowym. Ludzie robią doktoraty i profesury na tym żeby znaleźć najlepsze przybliżenie heurystyczne. Krótko, nie zrobisz tego w sposób prosty optymalnie. Zwlaszcza w SQLu

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.