🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #194688

Najbliższa data z przyszłości lub z przeszłości

#194688
From: Leszek Zur
Date: Thu, 19 Nov 2015 22:53
42 lines
2774 bytes
MySQL. Mam 2 tabele:
Firmy z polami id, Nazwa
Kontakty z polami idfirmy, Osoba, Data
W tabeli Kontakty zapisywane są kontakty z osobami z firmy wraz z datą 
kontaktu. Potrzebuję wyświetlić tabelę gdzie wyświetlona jest nazwa 
firmy (każda firma jeden raz nawet jak nie było z nią żadnych kontaktów 
albo było ich wiele), osoba i data kontaktu. Kontakt wybierany jest w 
ten sposób, że jeśli dla danej firmy są jakieś kontakty z datą z 
przyszłości (licząc od dzisiaj) to wybierany jest najbliższa data. Jeśli 
nie ma żadnych kontaktów z przyszłości to wybierany jest kontakt ostatni 
z przeszłości. Jeśli firma nie ma żadnych kontaktów to pola Osoba i Data 
powinny zostać puste.

Na przykład mam taką tabelę Firmy:
id Nazwa
1  FirmaA
2  FirmaB
3  FirmaC

Oraz tabelę Kontakty:
idfirmy Osoba Data
1       Adam   2016-10-25
1       Basia  2016-11-22
1       Kasia  2015-05-18
1       Zenek  2015-07-20
2       Franek 2015-02-25
2       Janek  2015-03-29

To powinienem dostać:
Nazwa  Osoba Data
FirmaA Adam  2016-10-25       (najbliższa data z przyszłości)
FirmaB Janek 2015-03-29       (ostatnia data z przeszłości)
FirmaC (puste) (puste)

Oczywiście jak to samo zapytanie wykonam w roku 2017 na tych samych 
danych to dla FirmaA zamiast Adama dostanę Basię.
Zrobiłem to za pomocą 2 widoków - jeden pokazuje dla każdej firmy 
najbliższy kontakt z przyszłości a drugi ostatni kontakt z przeszłości i 
w php wyświetlam odpowiednia wartość. Ale pewnie można to zrobić w samym 
MySQL. Jak ?

Pozdrawiam - Leszek
Technical Details
Message-ID: <n2ljrj$vkr$1@news.vectranet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!ecngs!testfeeder.ecngs.de!81.171.118.62.MISMATCH!peer02.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!news.vectranet.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!ecngs!testfeeder.ecngs.de!81.171.118.62.MISMATCH!peer02.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!news.vectranet.pl!.POSTED!not-for-mail
From: Leszek Zur <USUNTO.leszek@teczowe.eu.org>
Newsgroups: pl.comp.bazy-danych
Subject: Najbliższa data z przyszłości
 lub z przeszłości
Date: Thu, 19 Nov 2015 23:53:01 +0100
Organization: Vectra - http://www.vectra.pl
Lines: 42
Message-ID: <n2ljrj$vkr$1@news.vectranet.pl>
NNTP-Posting-Host: 078088121201.dzierzoniow.vectranet.pl
Mime-Version: 1.0
X-Trace: news.vectranet.pl 1447973555 32411 78.88.121.201 (19 Nov 2015 22:52:35 GMT)
X-Complaints-To: usenet@news.vectranet.pl
NNTP-Posting-Date: Thu, 19 Nov 2015 22:52:35 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
X-Mozilla-News-Host: news://news.vectranet.pl:119
X-Received-Bytes: 2534
X-Received-Body-CRC: 2137078328
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit