我无法得到一些表列,因为它需要recursive query
,我不擅长。所以基本上,如果是直接转移,那么备注部分可能是空的。如果在起点和终点之间有一个停止,那么我需要添加站到我的备注栏。
A to B -> nothing
B to C -> Via B
C -> D -> Via B,C
SQL查询为:
CREATE TABLE IPhone (Id int, Country NVARCHAR(12), seqNo int, Send datetime2(0), Arrive datetime2(0));
INSERT INTO IPhone VALUES
('1001','America','1', '2022-11-23 18:30:00.000',null),
('1002','China','2', '2022-11-24 08:18:00.000','2022-11-24 05:00:00'),
('1003','Argentina','3', '2022-11-25 18:30:00.000','2022-11-24 18:18:00.000'),
('1004','Saudi Arabia','4',null,'2022-11-25 20:30:00.000');
已尝试
select f.id,f.Country CountryFrom, t.Country CountryTo
, convert(varchar(4),f.seqNo) + '-' + convert(varchar(4),t.seqNo) seqNo
, f.Send, t.Arrive,concat('VIA ', f.Country ,', ', t.Country) Remarks from IPhone f inner join IPhone t on f.seqNo < t.seqNo order by id;
给予
**要求如下。**我已经厌倦了研究How to create a MySQL hierarchical recursive query?,但我无法得到预期的结果。感谢您的帮助。
2条答案
按热度按时间zf9nrax11#
不需要递归查询,这应该可以实现http://sqlfiddle.com/#!18/8843 a/1
ezykj2lf2#
如果像评论中提到的那样,你使用MS SQL,你可以这样构造递归查询。