![]() |
![]() |
![]()
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%) ![]() ![]() |
[quote name='diodadioda' date='17.06.2014, 18:24:14 ' post='1111477']
CREATE TABLE `ostatnie_ceny` ( `indeks` varchar(15) NOT NULL, no w kodzie co uruchamiam jest varchar(15) CREATE TABLE `ostatnie_ceny` ( `indeks` varchar(15) 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; DROP TRIGGER IF EXISTS ostatnie_ceny; 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_przedprzedost) VALUE (NEW.indeks, NEW.cena_zakupu, v_cena_przedost, v_cena_przedprzedost); END// DELIMITER ; Chyba ze coś przeoczylem..moze musi byc inny typ zmiennej, ale jaki co by też znaki obsłużył? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 18:16 |