【发布时间】:2019-04-03 08:31:33
【问题描述】:
Table Fan
-----------------------
| FanId | Name | Info |
-----------------------
| 17111 | Fan1 | Info1|
-----------------------
| 17112 | Fan2 | Info2|
-----------------------
1:m
Table ProfileFan
----------------------------------
| Id | LinkedInProfileId | FanId |
----------------------------------
| 1111 | 1 | 17111 |
----------------------------------
| 1112 | 2 | 17111 |
----------------------------------
| 1113 | 1 | 17112 |
----------------------------------
| 1114 | 2 | 17112 |
----------------------------------
m:1
Table LinkedInProfile
--------------------------
| LiId | Name | Client |
--------------------------
| 1 | Linked1 | Client1|
--------------------------
| 2 | Linked2 | Client1 |
--------------------------
我需要将这些关系表中的数据导出为 CSV。所以我正在为这项工作制定一个程序,并安排它每小时运行一次。
问题是我需要在一行中插入来自一个风扇的查询中的数据。
ExportToCsv Table
--------------------------------------------------------------------
| FanName | FanInfo | LinkedInProfile1| LinkedInProfile2 | Client |
--------------------------------------------------------------------
| Fan1 | FanInfo1 | Linked1(1111) | Linked2(1112) | Client1 |
--------------------------------------------------------------------
| Fan2 | FanInfo2 | Linked1(1113) | Linked2(1114) | Client1 |
--------------------------------------------------------------------
到目前为止,我的查询正在为每个 ProfileFanId 生成行。
BEGIN
DECLARE @ProfileFanId INT
SET @ProfileFanId=0
SELECT TOP (1) @ProfileFanId =[dbo].[ExportCSV].ProfileFanId
FROM [dbo].[ExportCSV] Order by ProfileFanId desc
IF @StatementType = 'Insert'
INSERT INTO ExportCSV (FanId, SNUrl, FullName, FirstName, LastName, Company, JobTitle, [ExperienceDescription], [FANProfileLocation], [CompanyDescription], [CompanyIndustry], [CompanyLocationCity],
[CompanyLocationCountry], [NumberOfEmployees], [CompanySpecialities], [CompanyLiURL], [CompanyDomain], [TwitterHandles], [EMailAddress] ,[TelephoneNumber], ClientName1, CreatedAt, ProfileFanId )
SELECT DISTINCT B.LinkedInProfile ,B.SNUrl ,B.FullName, B.FirstName, B.LastName,B.Organization1,B.JobTitle,B.ExperienceDescr,B.ProfileLocation,B.OrganizationDescription1,B.Organization1Industry,
B.OrganizationCity1,B.OrganizationCountry1,B.Organization1Size, B.OrganizationSpecialities1, B.OrganizationLIID1,B.OrganizationDomain1, B.Twitter, B.Email, B.Phone, C.Name, SYSDATETIME(), A.Id, B.Id --,c.EmailResponseStatusId,c.FanStatusId,c.BatchId, n.DeliveryActionId, n.LoggedAt, f.ActivityId,f.Created
FROM ProfileFan A
INNER JOIN Fan B ON A.FanId = B.Id
INNER JOIN LinkedInProfile C ON A.ProfileId = C.Id
--INNER JOIN Batch D ON A.BatchId = D.Id
where A.Id>@ProfileFanId
--------------------------------------------------------------------
| FanName | FanInfo | LinkedInProfile1| LinkedInProfile2 | Client |
--------------------------------------------------------------------
| Fan1 | FanInfo1 | Linked1(1111) | | Client1|
--------------------------------------------------------------------
| Fan1 | FanInfo1 | Linked2(1112) | | Client1|
--------------------------------------------------------------------
| Fan2 | FanInfo2 | Linked1(1113) | | Client1|
--------------------------------------------------------------------
| Fan2 | FanInfo2 | Linked2(1114) | | Client1|
--------------------------------------------------------------------
欢迎任何想法如何获得所需的输出。提前致谢!
【问题讨论】:
-
一条 Fan 记录可以有多少个
LinkedInProfileN?如果单个 Fan 有 10000 个,您希望 CSV 文件中有 10000 个列吗? -
1 粉丝可以拥有多个 ProfileFans,这些 ProfileFans 由 LinkedInProfiles 确定,其中很多。 ex 2 profileFans 为 2 LinkedInProfiles 生成,但在 Fan Table 中只有 1 条记录
标签: sql sql-server stored-procedures export-to-csv