![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki problemik: Jest sobie tabela, w której trzymane są kartoteki magazynowe stan: id_towaru int(11) NOT NULL id_magazynu int(11) NOT NULL id_stanu int(11) NOT NULL PRIMARY KEY data datetime NOT NULL ilosc double(15,4) NOT NULL jedn int(20) NOT NULL dest mediumint(9) NULL Budowanie poszczególnych kartotek jest proste:
określenie stanu na dany dzień dla kartoteki też jest proste:
Problem zaczyna się gdy chcę wyświetlić stan całego magazynu na żądany dzień. Proste pytanie wyświetla bzdury:
Częściowo rozwiązałem to następująco:
Jest to wyjątkowo kiepskie rozwiązanie... Po pierwsze jego czas jego wykonania jest nie do przyjęcia, a po drugie nie uwzględnia drugiego elementu sortowania (w przypadku tej samej wartości datetime sortuję malejąco po id_stanu). Będę wdzięczny za wszystkie pomysły i sugestie. Piotrek |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
W zapytaniu, które wyświetla bzdury nie możesz polegać na wartości pola ilość, bo nie jest ani w group by ani nie używasz na nim funkcji agregującej. Trudno też oczekiwać stanu całego magazynu na dany dzień skoro tego dnia w zapytaniu nigdzie nie określasz.
Co oznaczają pola jedn i dest? Ile jest różnych towarów i magazynów? Skoro potrzebujesz sortować nie tylko po dacie, ale też po id, to czy na pewno data jest typu datetime, jeśli tak to jak często się zdarzają modyfikacje stanu tego samego towaru w tym samym magazynie w ciągu jednej sekundy? Bo taka jest właśnie dokładność datetime. Ten post edytował pmir13 18.03.2012, 19:12:49 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 16:04 |