Yazmak için oldukça karmaşık bir sorgum var; Postgres kullanıyoruz.Bir tarihin güncellenene kadar geçerli olduğu iki tablodaki tarihler nasıl karşılaştırılır?
Tablo 1: üyelerine
show_id | Price | user_id | created_at
17 | 40 | 25 | 02/16/2016
17 | 40 | 26 | 02/16/2016
23 | 50 | 25 | 07/24/2015
Ne yapmak istediğim yarattığı Fiyat uyarıları: Tarihsel bilet fiyatları
ticket_seller_id | show_id | low_price | created_at
1 | 17 | 40 | 05/09/2015
2 | 23 | 50 | 06/23/2015
2 | 23 | 60 | 07/23/2015
2 | 23 | 70 | 08/23/2015
3 | 23 | 55 | 07/22/2015
Tablo 2 Temelde, iki tablo arasında veri var bir yaratmak SADECE fiyat uyarıları olan "uyarı fiyatı" nın mevcut bir tarihsel fiyattan daha düşük olduğu sonuç tablosu. Yukarıdaki verilerden, şu şekilde görünecektir: Kullanıcıya 25 den gösterisi 23 için 50 $ fiyat uyarı görüntülenebilir olmaz
show_id | Price | user_id | created_at
17 | 40 | 25 | 02/16/2016
Not zamana göre kullanıcı bu fiyat uyarı oluşturup, çünkü LOW_PRICE vardı 60 dolara yükseldi. Ayrıca, her biletin her bilet için kendi düşük fiyatına sahip olduğunu unutmayın. Cevap, uyarının oluşturulduğu tarihten önceki bir tarihte oluşturulan herhangi bir bilet satıcısından elde edilebilecek en düşük fiyatı bulmalıdır. Fiyatlar güncellenmiş olana kadar geçerlidir, bu nedenle en düşük fiyat şu anda en düşük fiyat olduğu için, 2/23/2015'de satıcı 2'den 23 gösterim için en düşük fiyat 60 $ olacaktır.
Her türlü yardım mutluluk duyacaktır!
Hangi DBMS'yi kullanıyorsunuz? –
Ve neden user_id = 26 sonuçların bir parçası olmamalı? Bu satır aynı tarihte aynı fiyat ile yaratıldı user_id = 25 –
@a_horse_with_no_name ile tamamen haklısınız! user_id = 26 dahil edilmelidir. Ve biz Postgres'i kullanıyoruz. –