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

SqlDataSourceASP.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サーバーでこれを行う良い方法はありません。カンマ区切りの列データはアンチパターンと見なされるため、設計上、コアSQL言語でこれを実現することは困難です。

ここでの最善の解決策は、クライアント側でこれらのレコードを結合することです(データベースと比較して... asp.netの観点からは、これはWebサーバーを意味します)

于 2013-01-28T18:12:09.593 に答える