![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 3 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
taka sytuacja: - sprzedawcy moga skladac w roznym czasie wiele propozycji cenowych na dany towar (moga tez nie zaproponowac zadnej ceny), struktura w uproszczeniu tabela Oferta: id_oferta, id_towar, id_sprzedawca, cena, data tabela Towar: id_towar, nazwa_towar tabela Sprzedawca: id_sprzedawca, nazwisko_sprzedawca jak zbudowac zapytanie, ktore dla danego sprzedawcy (na wejsciu mamy jego id) poda nam wyniki dotyczace tylko tych towarow na ktore oferty skladal w postaci: nazwa_towar, dotychczas maksymalna cena danego sprzedawcy na ten towar, nazwisko danego sprzedawcy, maksymalna cena na ten towar sposrod wszystkich sprzedawcow, nazwisko sprzedawcy ktory zaproponowal najwyzsza cene uff da sie to jednym zapytaniem ? Mongea |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może tak
A jak nie to podaj kod do wygenerowania tabeli z przykładowymi rekordami to ci zrobię to zapytanie Ten post edytował kefirek 3.03.2009, 18:21:28 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 3 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
kod do testow:
Kod -- phpMyAdmin SQL Dump -- version 3.0.1.1 -- [url="http://www.phpmyadmin.net/"]http://www.phpmyadmin.net[/url] -- -- Host: localhost -- Czas wygenerowania: 03 Mar 2009, 22:16 -- Wersja serwera: 5.0.45 -- Wersja PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Baza danych: `mon_test` -- -- -------------------------------------------------------- -- -- Struktura tabeli dla `oferta` -- CREATE TABLE IF NOT EXISTS `oferta` ( `id` int(11) NOT NULL auto_increment, `id_towar` int(11) NOT NULL, `id_sprzedawca` int(11) NOT NULL, `cena` decimal(10,0) NOT NULL, `data` date NOT NULL, PRIMARY KEY (`id`), KEY `id_towar` (`id_towar`,`id_sprzedawca`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11; -- -- Zrzut danych tabeli `oferta` -- INSERT INTO `oferta` (`id`, `id_towar`, `id_sprzedawca`, `cena`, `data`) VALUES (1, 1, 1, 5, '2009-03-01'), (2, 3, 1, 2, '2009-03-02'), (3, 1, 2, 1, '2009-03-03'), (4, 2, 5, 7, '2009-03-04'), (5, 3, 5, 3, '2009-03-05'), (6, 1, 1, 3, '2009-03-06'), (7, 2, 4, 6, '2009-03-07'), (8, 1, 3, 5, '2009-03-08'), (9, 2, 3, 2, '2009-03-09'), (10, 4, 1, 8, '2009-03-10'); -- -------------------------------------------------------- -- -- Struktura tabeli dla `sprzedawca` -- CREATE TABLE IF NOT EXISTS `sprzedawca` ( `id_sprzedawca` int(11) NOT NULL auto_increment, `nazwisko` varchar(20) NOT NULL, PRIMARY KEY (`id_sprzedawca`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6; -- -- Zrzut danych tabeli `sprzedawca` -- INSERT INTO `sprzedawca` (`id_sprzedawca`, `nazwisko`) VALUES (1, 'Nowak'), (2, 'Kowalski'), (3, 'Adamski'), (4, 'Sikorski'), (5, 'Bacik'); -- -------------------------------------------------------- -- -- Struktura tabeli dla `towar` -- CREATE TABLE IF NOT EXISTS `towar` ( `id_towar` int(11) NOT NULL auto_increment, `nazwa` varchar(20) NOT NULL, PRIMARY KEY (`id_towar`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5; -- -- Zrzut danych tabeli `towar` -- INSERT INTO `towar` (`id_towar`, `nazwa`) VALUES (1, 'but'), (2, 'telefon'), (3, 'kurtka'), (4, 'rower'); Może tak
A jak nie to podaj kod do wygenerowania tabeli z przykładowymi rekordami to ci zrobię to zapytanie grupujesz po id_sprzedawca - tym sposobem uzyskujesz maksymalne ceny danego sprzedawcy sposrod wszystkich towarow (a nie maksima dotyczace danego towaru) Ten post edytował mongea 3.03.2009, 22:54:25 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:19 |