求两句SQL语句(100分)

  • 主题发起人 主题发起人 JasonLaw
  • 开始时间 开始时间
J

JasonLaw

Unregistered / Unconfirmed
GUEST, unregistred user!
表1
字段1 字段2 字段3
1 1 1
2 3 4
.....内容随便,问题主要与字段相关,

我想得到的表的结构是:

字段1 字段2 字段3 字段1 字段2 字段3 字段1 字段2 字段3
..........

每一组分 1/3的数据

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

问题2

我有两个数据表。都是
表1
字段1 字段2 字段3

表2
字段1 字段2 字段3


我想得到的时,
把表2的数据跟在表1后面。并不是:

字段1 字段2 字段3 字段1 字段2 字段3 这样。

只是让表2的数据,在表1 的下面跟随。
 
第1个比较麻烦。。。
第2个简单:
select * from table1
union all
select * from table2
 
这是 行转列的问题 给个例子
select * from cj

declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)

name subject result

张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82
张三 语文 100


李四 92 82 85
张三 90 85 180
 
呵呵不晓得我理解得对不对。
1,select 字段1/3,字段2/3,字段3/3,字段1/3,字段2/3,字段3/3,字段1/3,字段2/3,字段3/3 from 表1

2, select * from 表1
union all
select * from 表2
 
要用到交叉列,你的问题和我遇到的类似
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3843250
 
1,针对这样的问题,如果只是显示给用户看,可以用程序来控制输出(不要用DBGrid,用StringGrid).
2, select * from 表1
union all
select * from 表2
 
第一個問題:
create table a(fdate datetime,findex varchar(10), ftype varchar(10), fname varchar(10), fqty integer)

select min(fdate),findex,ftype,sum(fqty) from a
group by findex,ftype

結果:
2008-01-01 00:00:00.000 A0001 書 50
2008-01-01 00:00:00.000 A0002 筆 31

在繁體系統下,所以用了繁體字。
 
呵呵~简单的问题
 
第一个问题:
begin
A:='-'+Copy(ComboBox1.Text,1,length(ComboBox1.Text)-2)+'-';
if length(A)<4 then A:='-0'+Copy(ComboBox1.Text,1,length(ComboBox1.Text)-2)+'-';

S:='select * from A where Time1 like'+'''';
S:=S+'%'+A+'%'+'''';

ADOQuery1.Active :=False;
ADOQuery1.SQL.Text :=S;
ADOQuery1.Active :=True;
end;
注:ComboBox1中内容为:
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
这是个按月的,按日的同理.
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3881682
 
select min(日期) as 最小出现日期,
编号,
类,
sum(数量) as 数量
from 表
group by 编号,类




select 字段1 字段2 字段3
from 表1
union
select 字段1 字段2 字段3
from 表2
 
多人接受答案了。
 
后退
顶部