当前位置:主页>销售管理软件> 列表

问一复杂的SQL语句!!!!!!谢谢!!!!分不够可以再加 找免费局域网管理软件

记账软件版1楼: 我有一个两个Table,其中Table1 的 Field如下:
Field名: Aid Name
数据: A001 AA
A002 BB
A003 CC
Table2的Field如下:
Field名: Bid Aid Count
数据: B001 A001 50

现在我想输出如下:
Field名: Aid AA BB CC
数据: A001 50 0 0

即是要输出Table1的所有 Field名,然后根据关联找出数据(表2的Aid=表1的Aid)
输出的系表我各个Field对应的各个Count

2楼: 这里有生成两个表的SQL语句,希望大家帮帮忙!
if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[TABLE1]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)
drop table [dbo].[TABLE1]
GO

CREATE TABLE [dbo].[TABLE1] (
[Aid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[TABLE2]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)
drop table [dbo].[TABLE2]


GO

CREATE TABLE [dbo].[TABLE2] (
[Bid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Aid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Count] [float] NULL
) ON [PRIMARY]
GO 如免费局域网管理软件

3楼: 不明白 楼主的意识

4楼: 只能用存储过程,一条sql语句完成不了

5楼: 恩……觉得还是先用程序 生成字段串,再查询,实现起来比较简单。

6楼: MSSQL下处理方法
select Aid,sum(case when Aid=''A001'' then [Count] else 0 end) AA,
sum(case when Aid=''A002'' then [Count] else 0 end) BB,
sum(case when Aid=''A003'' then [Count] else 0 end) CC
from Table2 group by Aid

如果Table1表是不定项目的话,就要用存储过程+游标生成中间sum语句内容,再执行SQL语句

记账软件版7楼: 回stuwe
Table1表的项目是固定不变的!

8楼: 固定不变就一项一项写就行了,没必要那么麻烦,就像上面语句一样,一个一个写

9楼: 多人接受答案了。