两表更新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再查询
[解决办法]
那就换实现方案吧
[解决办法]
用之前建表,就像临时表
[解决办法]
用交叉表形式写吧