0

Attendence_Stu_Main {table1}

Att_id varchar(50)P.k,                                     
st_rollno varchar(50)
st_name varchar(50)
branch_name varchar(50)
sem_no int
batch_year varchar(50)
batch_name varchar(50)
scode   varchar(50)
sess_no int
attendence int 
total int

Attendence_Stu_MainL1 {table2}

st_id varchar(50) p.k.
st_rollno varchar(50),
st_name varchar(50),
branch_name varchar(50),
sem_no int,
batch_year varchar(50),
batch_name varchar(50),
scode   varchar(50),
sess_no int,
attendence int, 
total int

我一直SqlDataSource在 ASP.NET中使用以下查询

query = @"SELECT DISTINCT Attendence_Stu_Main.st_id, Attendence_Stu_Main.st_rollno,
 Attendence_Stu_Main.st_name,
 Attendence_Stu_Main.scode,
 Attendence_Stu_Main.attendence AS Theory,
 Attendence_Stu_Main.total As Total,
 Attendence_Stu_MainL1.attendence AS Lab,
 Attendence_Stu_MainL1.total AS Total1 
FROM  Attendence_Stu_Main 
LEFT OUTER JOIN Attendence_Stu_MainL1 
    ON Attendence_Stu_Main.st_id = Attendence_Stu_MainL1.st_id 
    AND Attendence_Stu_Main.scode = Attendence_Stu_MainL1.scode 
ORDER BY Attendence_Stu_Main.scode,Attendence_Stu_Main.st_rollno";

上面的查询在 GridVIew 中以这种形式显示输出:---

st_id   st_rollno  st_name  subject  Theory      Total   Lab      Total1
--------------------------------------------------------------------------------
086001  IT001      PRANAV   mat        21           22       11       14
086002  IT002      DEEP     mat        21           22       11       14
086001  IT001      PRANAV   sci        20           24       09       12
086002  IT002      DEEP     sci        21           24       08       12

如果有人可以帮助我,我希望我的输出如下,使用 SQL Server 和 ASP.NET 控件功能。

st_id   st_rollno   st_name   subject   Theory   Total            Lab      Total1
---------------------------------------------------------------------------------------
086001  IT001      PRANAV   mat,sci 21,20       22,24          11,09       14,12
086002  IT002       DEEP    mat,sci 21,21       22 ,24         11,08       14,12
4

1 回答 1

2

没有像游标之类的东西在 sql server 中执行此操作的好方法。逗号分隔的列数据被认为是一种反模式,因此很难通过设计使用核心 sql 语言来实现这一点。

您最好的解决方案是在客户端合并这些记录(相对于数据库......从 asp.net 的角度来看,这意味着 Web 服务器)

于 2013-01-28T18:12:09.593 回答