|
Сравнение записей в таблице
|
|||
---|---|---|---|
#18+
Изучаю sql столкнулся со сложностями в решении элементарной задачи. Имеется два отношения: в отношение Battles включены название и дата битвы, в которой участвовали корабли, а в отношении Outcomes – название корабля, название битвы, в которой они участвовали, результат участия данного корабля в битве (потоплен-sunk, поврежден - damaged или невредим - OK). Условие задачи: найдите корабли, `сохранившиеся для будущих сражений`; т.е. выведенные из строя в одной битве (damaged), они участвовали в другой, произошедшей позже. В целом у меня есть понимение, как решить задачу, но проблема в том, чтобы выполнить основное условие задачи: "найдите корабли, `сохранившиеся для будущих сражений`. Каким образом можно сравнить дату битвы одного и того же корабля? То есть есть две записи, одна более ранняя, другая более поздняя, если у корабля есть запись с более поздней датой битвы , значит он удовлетворят условиям задачи. пробовал решить так, но тут неправильно сравниваются даты, а как правильно я не знаю. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 11:11 |
|
Сравнение записей в таблице
|
|||
---|---|---|---|
#18+
Crank_1986, 1 самое простое, очевидное и "читаемое" это отбор с условием where result = 'damaged' + exists в котором проверяешь, что для этого корабля, есть запись с бОльшей датой чем в основном запросе 2 или проявить "смекалку" :) Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 11:23 |
|
Сравнение записей в таблице
|
|||
---|---|---|---|
#18+
court, Спасибо за ответ, будем пробовать) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 11:26 |
|
|
start [/forum/topic.php?fid=46&fpage=77&tid=1686806]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 175ms |
0 / 0 |