Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 25.01.2011 Ostrzeżenie: (0%)
|
Witam.
Potrzebuję pomocy w opracowaniu takiego mechanizmu wyszukiwania w bazie danych. Mam zmienne warunki : Dzienne zapotrzebowanie na białko jest na poziomie od 60 do 180g. To białko muszę rozłożyć na pięć do siedmiu posiłków.Niestety nie mogą być rozłożone równomiernie tylko przypadkowo co komplikuje sprawę. a więc: białko na dzień 120g liczba posiłków 6 Teraz muszę to podzielić na pięć nierównomiernych/przypadkowych porcji z 20% marginesem co da przedział od 96 do 144g na dzień. Czyli np:
I teraz zapytanie do bazy w pętli: znajdź posiłek o zawartości białką najbardziej zbliżonej do x, gdzie x to zawartość białka w posiłku. Nie mogę stosować klauzuli where bialko = x ponieważ wartości w bazie są różne.Muszę odnaleźć najbardziej zbliżoną wartość. Do głowy mi przychodzi teraz obliczenie marginesu 20% dla każdego posiłku min i max i użycie tego w klauzuli where. Może ma ktoś inny pomysł? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Rekord w zakresie możesz znaleźć jednym zapytaniem, będzie on spełniony jeśli: wartość jest w zakresie lub jest to mniejsza wartość z: minimalna różnica dolnej wartości zakresu i zawartości w potrawie lub minimalna różnica górnej wartości zakresu i zawartości w potrawie.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 25.01.2011 Ostrzeżenie: (0%)
|
Rekord w zakresie możesz znaleźć jednym zapytaniem, będzie on spełniony jeśli: wartość jest w zakresie lub jest to mniejsza wartość z: minimalna różnica dolnej wartości zakresu i zawartości w potrawie lub minimalna różnica górnej wartości zakresu i zawartości w potrawie. To już mam z głowy.cel został osiągnięty,ale przysporzył dodatkowych problemów. Przy zastosowaniu moich danych biometrycznych wszystko gra i trąbi,ale jak trafi się chudszu lub grubszy to już się sypie plan bo zmienia się rozkład białka w ciągu dnia. Aby spełnić warunki we wszystkich możliwych kombinacjach potrzebowałbym min(480 000) *7)posiłków. Czyli dużo za dużo.Dietetycy do końca życia by tych przepisów nie naprodukowali. Dysponuję ok 2700 przepisami i w tym zapytaniu są dodatkowe kryteria które je po kolei eliminują. Myślę o warunku: jeśli wynik = false znajdź mniejszy i większy->porównaj->wybierz najbliższy Odbyło by się to co prawda kosztem bilansu białka,ale mam na to zgodę z góry. Ucieszyłbym się gdyby dało się do upchać w SQL Wiem,że jest jakaś metoda Levenshtein'a ale nie wiem jak ją zastosować w praktyce. Na razie ciągnę to przy pomocy warunków i dodatkowych zapytań. |
|
|
|
stankiewiczpl Znalezienie wartości w bazie danych których suma da zblizony do zadanej wartości wynik końcowy 30.12.2016, 13:30:15
trueblue Z czym dokładnie masz problem, z rozbiciem zapotrz... 30.12.2016, 13:53:55
stankiewiczpl To drugie czyli znalezienie dania o zbliżonej zawa... 30.12.2016, 14:42:55
trueblue Najbliższa większa wartość:
[SQL] pobierz, plainte... 4.01.2017, 19:26:32 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 19:38 |