![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam, na wstępie chciałbym zaznaczyć iz jeżeli chodzi o sql jestem zupełnym nowicjuszem.
Moja tabela wygląda tak:
id week day_of_week start finish //tu przy zapytaniu tworzyłaby się nowa kolumna, powiedzmy "czas" 1 1 poniedzialek 2013-08-20 06:00:00 2013-08-20 12:00:00 //6 2 1 wtorek 2013-08-20 06:30:00 2013-08-20 14:00:00 //13,5 (jako iż 6+7,5) ... Czy jest możliwość wyświetlania w outpucie widoku kolejno dodanych do siebie godzin tzn. powiedzmy, że pierwszego dnia czas pracy wyniósł 6h, wiec "za" finish byloby 6, we wtorek 7,5 wiec za finish gdzie id=2 byloby 13,5 itd. Myslałem, aby zrobić to w pętli, ale po zapoznaniu się z formułami pętli w mysql, nadal jestem w kropce. Z góry dziękuję za pomoc P.S Wybaczcie wygląd przykładowej tabeli, ale edytor zjada spacje |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Otrzymuję błąd
Error Code: 1248. Every derived table must have its own alias |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedź, ale niestety nie działa tzn. w każdym wierszu 'czas pracy' wyswietla mi ilosc przepracowanych godzin w danym dniu, jednak nie sumuje tych godzin z góry do dołu. Wygląda to tak (to wiedziałem jak zrobić):
start finish czas pracy 8 16 8 6 16 10 9 19 10 a mi chodziło o to, aby wyglądało tak: start finish czas pracy 8 16 8 6 16 18 9 19 28 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuję, działa (IMG:style_emoticons/default/biggrin.gif)
Z ciekawości, jako laik spytam: 1)@czaspracy - '@' oznacza w tym przypadku wprowadzenie czegoś w stylu tymczasowej zmiennej? 2)Zastanawiam się też, czy można zmienić format wyświetlania tych godzin tzn aktualnie jest 18.000000000, a chciałbym, aby było 18. Tak samo np. mam kolumne start i jest w niej data w formacie yyyy-mm-dd to czy można w jednym zapytaniu wyswietlić całą tabelę ze zmienioną data w formacie dd-mm-yyyy. Samą date jako zapytanie wiem jak zmienić (select date_format), ale nie działa mi to dla całej tabeli. Z góry dziękuję za odpowiedź i pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
ad.1 http://dev.mysql.com/doc/refman/5.5/en/user-variables.html
ad.2 http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html ad.3 Tak jak piszesz, DATE_FORMAT, czyli SELECT DATE_FORMAT(finish,tu_format) FROM... |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za wskazówki. Z formatowaniem daty i godziny chyba sobie poradziłem:
Jednakże, nie radzę sobie z formatowaniem lizb. Używam funkcji convert(), konwertuje na signed lub decimal, jednak nic się nie dzieje. Czy gdzieś popełniłem błąd w składni czy cos innego mam zupełnie źle?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję bardzo, działa (IMG:style_emoticons/default/smile.gif)
Wynalazłem kolejny problem. Nie mogę poradzić sobie z połączeniem wyswietlania sumy pracy w jednym dniu i sumowaniu tych godzin tak jak jest wyżej. Chciałbym, żeby po kolumnie czas_pracy, była kolumna czas, a w niej ilosc godzin przepracowanych w danym dniu. W przypadku 1 wyrzuca mi błąd: Subquery returns more than 1 row
Natomiast w 2 przypadku próbowałem użyc union, powiela mi wyniki tabeli (robi drugą pod spodem), bez drugiego id=1, tylko po id=10, następuje id=2 i w tych powielonych wierszach od id=2 do id=10 wyswietla ilosc przepracowanych godzin w danym dniu.
Mam do tej sytuacji ogólne pytanie, czy jest w ogóle możliwe takie połączenie dwóch selectów? Szukałem w google, znalazłem tylko informacje odnośnie łączenia n-tabel. Z góry dziękuje za pomoc i pozdrawiam |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W danym dniu, ale również narastająco?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie, wystarczy, że obok wyniku tego zapytania
pojawi się kolumna czas i będzie w niej wyświetlona ilość godzin przepracowanych w danym dniu |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Możesz to zrobić korzystając z podzapytania jako źródła kolumny lub podzapytania w klauzuli FROM.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Próbuję zastosować się do tych rad, ale nie bardzo je rozumiem. Mógłbym prosić o troche większą podpowiedź? Z tego co zrozumiałem, powinienem umiejscowić w odpowiedniej formie
za selectem, tam gdzie kolumny tak? Gdy tak wstawiam, to podkreśla mi 'as', jakby go tam nie miało być |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że zrobiłem analogicznie u siebie, jednak teraz podkreśla mi drugie AS... (IMG:style_emoticons/default/sad.gif)
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował trueblue 17.07.2014, 10:51:18 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, ten sam błąd co u mnie wcześniej ;( Subquery returns more than 1 row
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 06:32 |