![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 16.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam po raz pierwszy
Niestety poległem w prostej sprawie, jak mi się przynajmniej wydawało..: Mam następującą tabelę zakupu2014: |id |indeks |nazwa_towaru |jm |il0osc |cena_zakupu |nazwa_kontrahenta |data_realizacji| |0 |121 |aaa |kg |12 |12.1 |hh |2014-01-24| |1 |121 |aaa |kg |12 |13.1 |hh |2014-01-23| |2 |122 |bbb |szt |12 |14.1 |hh |2014-01-24| |3 |121 |aaa |kg |12 |10.1 |hh |2014-01-01| |4 |122 |bbb |szt|12 |9.1 |hh |2014-01-10| |5 |122 |bbb |szt|12 |1.1 |hh |2014-01-12| potrzebuje osiągnąc taki wynik jak daje: Select indeks,cena_zakupu,avg(cena_zakupu),min(cena_zakupu) from zakupy2014 group by indeks ale zamiast np avg ostatnią cenę zakupu, przedostatnia cenę zakupu i przedprzedostatnia cenę zakupu -w jednym rekordzie jak to jest właśnie w tym zapytaniu Oczywiście biorę po uwagę wariant ze zbudowaniem osobnej tabeli z takimi wynikami. Podkreślam, że dla niektórych indeksów może być tylko ostatnia cena_zakupu. Ma ktoś pomysł jak to rozwiązać? Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 16.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam ...
Teraz powstaly indeksy, wyzwalacze i ..pusta tabela: CREATE INDEX indeks ON zakupy2014 (indeks);# MySQL zwrócił pusty wynik (zero wierszy). CREATE TABLE `ostatnie_ceny` ( `indeks` varchar(15) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `cena_ost` decimal(8,2) NOT NULL, `cena_przedost` decimal(8,2) DEFAULT NULL, `cena_przedprzedost` decimal(8,2) DEFAULT NULL, PRIMARY KEY (`indeks`), FOREIGN KEY (`indeks`) REFERENCES `zakupy2014` (`indeks`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB;# MySQL zwrócił pusty wynik (zero wierszy). DROP TRIGGER IF EXISTS ostatnie_ceny;# MySQL zwrócił pusty wynik (zero wierszy). DELIMITER // CREATE TRIGGER ostatnie_ceny AFTER INSERT ON zakupy2014 FOR EACH ROW BEGIN DECLARE v_cena_przedost, v_cena_przedprzedost DECIMAL(8,2) DEFAULT NULL; SELECT cena_ost, cena_przedost INTO v_cena_przedost, v_cena_przedprzedost FROM ostatnie_ceny WHERE indeks = NEW.indeks; REPLACE ostatnie_ceny (indeks, cena_ost, cena_przedost, cena_przedprzedos[...] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 11:36 |