求一SQL语句, 要求字段ggxh相同时字段nbjj字符串叠加

llqqff 2007-07-28 04:55:36
bzjzhbid ggxh amount parameter Para nbjj
553 M6X16;J21-9 2 J21-9 M000006X000016 02=2
554 M8X25;J21-9 16 J21-9 M000008X000025 07=16
555 M6X16;J21-9 5 J21-9 M000010X000025 06=5
............我一年没用c#了,有SQL语句吗?不for行吗?

nbjj字符串叠加成02=2|06=5
553 M6X16;J21-9 7 J21-9 M000006X000016 02=2|06=5
...全文
272 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
llqqff1 2007-07-30
  • 打赏
  • 举报
回复
强for解决了。感谢sql方面的支持。
llqqff 2007-07-28
  • 打赏
  • 举报
回复
ACCESS里没存储过程阿。
还没搞定。
llqqff 2007-07-28
  • 打赏
  • 举报
回复
ACCESS看来只有for了。

ACCESS库aaa中的表bbb如何强制复制为aaa中的表bbb1(不管原来有没有bbb1)?
paoluo 2007-07-28
  • 打赏
  • 举报
回复
ACCESS就不會了,還是去ACCESS版問吧,那邊有高手。

下班了。
weseng 2007-07-28
  • 打赏
  • 举报
回复
access能做出来吗???期待中..........
llqqff 2007-07-28
  • 打赏
  • 举报
回复
我现在用的是accese+vs2003, 能否贴个现成的实现函数上来。
paoluo 2007-07-28
  • 打赏
  • 举报
回复
--創建測試環境
Create Table 表
(bzjzhbid Int,
ggxh Varchar(30),
amount Int,
parameter Varchar(20),
Para Varchar(50),
nbjj Varchar(20))
Insert 表 Select 553, 'M6X16;J21-9', 2, 'J21-9', 'M000006X000016', '02=2'
Union All Select 554, 'M8X25;J21-9', 16, 'J21-9', 'M000008X000025', '07=16'
Union All Select 555, 'M6X16;J21-9', 5, 'J21-9', 'M000010X000025', '06=5'
GO
--創建函數
Create Function F_TEST(@ggxh Varchar(30))
Returns Varchar(1000)
As
Begin
Declare @S Varchar(1000)
Select @S = ''
Select @S = @S + '|' + nbjj From 表 Where ggxh = @ggxh
Select @S = Stuff(@S, 1, 1, '')
Return @S
End
GO
--測試
Select
Min(bzjzhbid) As bzjzhbid,
ggxh,
SUM(amount) As amount,
Min(parameter) As parameter,
Min(Para) As Para,
dbo. F_TEST(ggxh) As nbjj
From

Group By
ggxh
GO
--刪除測試環境
Drop Table 表
Drop Function F_TEST
--結果
/*
bzjzhbid ggxh amount parameter Para nbjj
553 M6X16;J21-9 7 J21-9 M000006X000016 02=2|06=5
554 M8X25;J21-9 16 J21-9 M000008X000025 07=16
*/
weseng 2007-07-28
  • 打赏
  • 举报
回复
呵呵,谢谢!
我指的是纯SQL语句,抱歉没说清楚
paoluo 2007-07-28
  • 打赏
  • 举报
回复
--創建函數
Create Function F_TEST(@ggxh Varchar(30))
Returns Varchar(1000)
As
Begin
Declare @S Varchar(1000)
Select @S = ''
Select @S = @S + '|' + nbjj From 表 Where ggxh = @ggxh
Select @S = Stuff(@S, 1, 1, '')
Return @S
End
GO
--調用
Select
Min(bzjzhbid) As bzjzhbid,
ggxh,
SUM(amount) As amount,
Min(parameter) As parameter,
Min(Para) As Para,
dbo. F_TEST(ggxh) As nbjj
From

Group By
ggxh
GO
paoluo 2007-07-28
  • 打赏
  • 举报
回复
weseng() ( ) 信誉:100 2007-07-28 17:52:02 得分: 0


同意楼上的说法,不要去紧想如何解决了,只用SQL无法完成


-------------------

應該說MS SQL 2000中只用一條SQL語句不能實現,用SQL是可以實現的。

MS SQL2000需要寫個函數。

MS SQL2005中可以使用一條語句實現。
paoluo 2007-07-28
  • 打赏
  • 举报
回复
MS SQL2000中需要寫個函數來實現
weseng 2007-07-28
  • 打赏
  • 举报
回复
同意楼上的说法,不要去紧想如何解决了,只用SQL无法完成
wxy0401 2007-07-28
  • 打赏
  • 举报
回复
用SQL语句是不能对字符串叠加的,还是在程序中用for吧。
llqqff 2007-07-28
  • 打赏
  • 举报
回复
sqlstr1=" SELECT SUM(amount) AS Expr1, ggxh, Para, classfy, COUNT(nbjj) AS Expr2 FROM Standardzhb GROUP BY ggxh,classfy, Para ORDER BY ggxh ";

结果好像不对。

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧