我想将AttorneyList附加到AttorneyList的第二个结果集中,并使用相同的DateFDdue。如何使用T-SQL查询执行此操作?此外,是否可以对新添加的AttorneyList进行排序?
+-------------------+-----------------------------------+
| DateFDdue | AttorneyList |
+-------------------+-----------------------------------+
| September 8, 2015 | Vitali (Purple) (Orange) (Lorah) |
+-------------------+-----------------------------------+
| September 9, 2015 | Ricords (Purple) (Orange) (OOR) |
+-------------------+-----------------------------------+
+--------------------+-------------------------------------+
| DateFDdue | AttorneyList |
+--------------------+-------------------------------------+
| September 3, 2015 | Mlinarich (Higgins); Riches (OOR) |
+--------------------+-------------------------------------+
| September 4, 2015 | APSCUF (Higgins); APSCUF (Higgins) |
+--------------------+-------------------------------------+
| September 8, 2015 | Brown (Singh); Burda (Zeppos) |
+--------------------+-------------------------------------+
| September 9, 2015 | Gay (OOR); Graves (OOR) |
+--------------------+-------------------------------------+
| September 10, 2015 | Burda (Higgins); WFMZ-TV (Young) |
+--------------------+-------------------------------------+
换句话说,如何将两个结果集合并到:
+--------------------+-------------------------------------+
| DateFDdue | AttorneyList |
+--------------------+-------------------------------------+
| September 3, 2015 | Mlinarich (Higgins); Riches (OOR) |
+--------------------+-------------------------------------+
| September 4, 2015 | APSCUF (Higgins); APSCUF (Higgins) |
+--------------------+-------------------------------------+
| September 8, 2015 | Brown (Singh); Burda (Zeppos); Vitali (Purple (Orange) (Lorah) | |
+--------------------+-------------------------------------+
| September 9, 2015 | Gay (OOR); Graves (OOR); Ricords (Purple (Orange) (OOR) | |
+--------------------+-------------------------------------+
| September 10, 2015 | Burda (Higgins); WFMZ-TV (Young) |
+--------------------+-------------------------------------+
答案 0 :(得分:2)
这将在两个列表中引入日期/律师,并在两个列表中的同一日期连接:
SELECT ISNULL(rs1.DateFDdue, rs2.DateFDdue) AS DateFDdue
, ISNULL(rs1.AttorneyList, '') + ' ' + ISNULL(rs2.AttorneyList, '') AS AttorneyList
FROM ResultSet1 rs1
FULL OUTER JOIN ResultSet2 rs2 ON rs1.DateFDdue = rs2.DateFDdue;
答案 1 :(得分:0)
要对行进行排序,您需要将varchar
值转换为datetime
;
WITH ResultSet1 AS
(
SELECT CONVERT(NVARCHAR(20), DateFDdue) DateFDdue, AttorneyList
FROM
( VALUES
('September 8, 2015', 'Vitali (Purple) (Orange) (Lorah)'),
('September 9, 2015', 'Ricords (Purple) (Orange) (OOR)')
) ResultSet(DateFDdue, AttorneyList)
), ResultSet2 AS
(
SELECT CONVERT(NVARCHAR(20), DateFDdue) DateFDdue, AttorneyList
FROM
( VALUES
('September 3, 2015', 'Mlinarich (Higgins); Riches (OOR)'),
('September 4, 2015', 'APSCUF (Higgins); APSCUF (Higgins'),
('September 8, 2015', 'Brown (Singh); Burda (Zeppos)'),
('September 9, 2015', 'Gay (OOR); Graves (OOR)'),
('September 10, 2015', 'Burda (Higgins); WFMZ-TV (Young)')
) ResultSet(DateFDdue, AttorneyList)
), FinalResult AS
(
SELECT ISNULL(ResultSet1.DateFDdue, ResultSet2.DateFDdue) AS DateFDdue,
ISNULL(ResultSet1.AttorneyList, '') + ' ' +
ISNULL(ResultSet2.AttorneyList, '') AS AttorneyList
FROM ResultSet1
FULL OUTER JOIN ResultSet2
ON ResultSet1.DateFDdue = ResultSet2.DateFDdue
)
SELECT *
FROM FinalResult
ORDER BY CONVERT(datetime, DateFDdue)