![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym wprowadzić automatyczną numerację faktur na poziomie MySQLa według schematu numer/rok np. 115/2014.
Po wejściu w nowy rok numer byłby zerowany. Zakładam, że taka numeracja wymaga dwóch kolumn - na numer kolejny i rok. Czy da się to zrobić na poziomie bazy w jakiś elegancki sposób? Ten post edytował 115750 25.06.2014, 15:07:41 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak, 2 kolumny
Funkcja zwracająca MAX() z numeru faktur WHERE rok = 2014 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A czy rok też się da automatycznie zmienić pop nadejściu nowego roku?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
YEAR(NOW())
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Po prostu jako wartość dla kolumny ROK ustaw wartość funkcji YEAR(NOW())
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Wyczarowałem coś takiego:
Iffnulla dodałem ponieważ, gdy zmieniałem ręcznie rok na inny, to wtedy pierwszym numerem faktury jest 0 a nie 1. Czy taki kod jest Waszym zdaniem ok, czy można go jakoś ulepszyć? Ten post edytował 115750 25.06.2014, 16:19:10 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Chciałem dziś przerobić swoje zapytanie na procedurę. Utworzyłem taki kod:
Niestety otrzymuję błąd: Cytat #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 8 Gdzie tkwi błąd? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dodaj przed
DELIMITER // i po // |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Niestety nic to nie zmieniło. Tylko nieznacznie zmienił się komunikat błędu:
Cytat #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '//' at line 9
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Pyton_000 26.06.2014, 15:02:19 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Niestety wciąż jest błąd.
Spróbowałem utworzyć tą procedurę za pomocą PHPMyAdmin i się udało. Oto jaki wygenerował kod:
Ten post edytował 115750 26.06.2014, 15:06:47 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Kod który Ci podałem też tworzył tą procedurę
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Może problem był w tym, że ten kod wykonywałem z poziomu PHPMyAdmin a nie bezpośrednio w konsoli mysql.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
w phpmyadmin nie podajesz dyrektywy DELIMITER tylko wpisujesz go w polu pod zapytaniem
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Wpisałem ten kod od Pyton_000 bezpośrednio w konsoli i również zadziałało.
Dziękuję za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 22:07 |