2012-07-18 90 views
0

我有3个表格。即Job_Master,Print_details,Paper_Details。数据集和连接。 ASP.net

的表的结构是如下所示:

Job_Master:

jobno JOBNAME量

1 A 100
2 B 200
3 C 300

Print_Details id bei纳克的PK和jobno是FK

ID jobno颜色

1 1青色
2 1红
3 2黑色
4 3黑色
5 3绿色

纸张详细 id是PK并且jobno是FK

id jobno类型

1铜版纸
2 1相纸
3 2铜版纸
4 3复印机
5 3相片纸

我希望有一个写在SQL服务器查询或在执行数据集操作ASP.net以便显示在网格视图中的结果集如下:

希望的结果集:

jobno jobname printDetails     paperDetails     amount 

1  A  CYAN,RED      Art Paper,Photo Paper   100 
2  B  Black       Art Paper      200 
3  C  Black,Green      Copier,Glossy Paper   300 

这可能使用ASP.net中的数据集操作或SQL服务器查询。我使用SQL Server 2008 R2作为我的数据库,而Fromt端则使用ASP.net3.5设计。

对此的任何帮助非常感谢。提前感谢。

+0

我已经存储在数据集合中选择a.Jobno,a.jobname,b.color,C以下查询的结果。键入 FROM job_master一个 LEFT JOIN cprint_details b ON a.jobno = b.jobno 留在a.jobno = c.jobno ORDER加入paper_details c。通过a.jobno但它并没有给我想要的结果。如何结合基于jobno的结果集中的颜色和类型列以获得单行。 – user1534206 2012-07-18 09:50:29

回答

1

试试这个

SELECT DISTINCT a.Jobno, a.jobname, COALESCE(b.color + ', ', '') + b.color,COALESCE(c.type + ', ', '') + c.type 
FROM job_master a left JOIN cprint_details b ON a.jobno=b.jobno 
left join paper_details c on a.jobno=c.jobno 
ORDER BY a.jobno 

这里阅读更多信息LINK

+0

谢谢王子。该查询确实有效,并将两行的结果合并到一个列中,但两次输出相同的结果。 – user1534206 2012-07-18 10:16:05

+0

我更新了我的答案。检查它是否有效 – 2012-07-18 10:17:40

+0

'1 CYAN,RED美术纸,相纸100
1 A CYAN,RED美术纸,照片纸100' – user1534206 2012-07-18 10:17:47