首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

两表更新SQL语句求解!解决方案

2012-01-03 
两表更新SQL语句求解!!!我有两个表:表Route:IDRouteName1上门2电话3短信4杂志5户外广告表VisitorLog:IDDat

两表更新SQL语句求解!!!
我有两个表:

表Route:
IDRouteName
1上门
2电话
3短信
4杂志
5户外广告

表VisitorLog:
IDDateRouteName   Value
12007-2-7上门   10
22007-3-5电话   15
32007-3-5短信   10

我想在GridView上显示成这样:
日期上门电话短信杂志户外广告
2007-2-7   10
2007-3-5         15   10

请问sqlDataSource的SELECT、UPDATE、INSERT语句该怎么写?

[解决办法]
关于sql参考:http://community.csdn.net/Expert/topic/5340/5340592.xml?temp=0.858683335994688
[解决办法]
行轉列

--建立測試環境
Create Table Route
(IDInt,
RouteNameNvarchar(20))
Insert Route Select 1,N '上门 '
Union All Select 2,N '电话 '
Union All Select 3,N '短信 '
Union All Select 4,N '杂志 '
Union All Select 5,N '户外广告 '

Create Table VisitorLog
(IDInt,
[Date]Varchar(10),
RouteNameNvarchar(20),
ValueInt)
Insert VisitorLog Select 1, '2007-2-7 ',N '上门 ', 10
Union All Select 2, '2007-3-5 ',N '电话 ', 15
Union All Select 3, '2007-3-5 ',N '短信 ', 10
GO
--測試
Declare @S Nvarchar(4000)
Select @S = N 'Select [Date] As 日期 '
Select @S = @S + ', SUM(Case RouteName When N ' ' ' + RouteName + ' ' ' Then Value Else 0 End) As ' + RouteName
From Route Order By ID
Select @S = @S + ' From VisitorLog Group By [Date] Order By [Date] '
EXEC(@S)
GO
--刪除測試
Drop Table Route, VisitorLog
--結果
/*
日期上门电话短信杂志户外广告
2007-2-7100000
2007-3-50151000
*/
[解决办法]
这个是列转行的,你得构造按你的要求先构造sql,然后使用这个sql再查询
[解决办法]
那就换实现方案吧
[解决办法]
用之前建表,就像临时表
[解决办法]
用交叉表形式写吧

热点排行