将两条select语句的查询结果显示在一个DBGrid中~大家有方法没?

ngcr2001 2008-07-09 09:35:12
有两条select语句,对应不同的表,查询不同的结果,分别显示在两个DBGrid中,现在我想将这两个结果显示在一个DBGrid中,大家有方法没?

两语句分别如下:
procedure TForm1.Button4Click(Sender: TObject);
begin
with DM2.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select Name as 库存名称,Sum(Num) as 入库数量 from Stocks');
SQL.Add('group by Name');
Open;
end;
end;


procedure TForm1.Button8Click(Sender: TObject);
begin
with DM2.ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('Select Name as 出库名称,Sum(num) as 出库数量 from OutStocks');
SQL.Add('group by Name');
Open;
end;
end;


想将这两条select语句的查询结果一起显示在一个DBGrid中~希望达人们帮帮忙~~

(附这两表的结构:

库存表Stocks:
字段:ID(自动编号的,无需显示) InNo(库存编号) Name(库存名称) Num(库存数量) InDate(入库日期)


出库表OutStocks:
字段:ID(自动编号的,无需显示) In_No(对应的库存编号) Name(出库名称) Num(出库数量) OutDate(出库数量)

这两个表的InNo和In_No及Name和Name是对应的

...全文
266 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
ngcr2001 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 GDTOPONE 的回复:]
晕!你双激DBGrid,例如你要显示三个字段,你就新增多少个列,指定列要显示的字段,列标题,设定每列长度.

以你的情况就新增三列,第一列的fieldname属性输入"库存名称",第二列的fieldname属性输入"出库总数",第三列
fieldname属性输入"库存总数"(注:输入时不包含双引号)

每列的TITLE--->CAPTION设置显示的标题.

每死的WIDTH设置长度.
[/Quote]
嘿嘿,原来还可以这样设置,都不知道~非常非常非常非常感谢大大!!!!!!!!!!!!!
GDTOPONE 2008-07-09
  • 打赏
  • 举报
回复
晕!你双激DBGrid,例如你要显示三个字段,你就新增多少个列,指定列要显示的字段,列标题,设定每列长度.

以你的情况就新增三列,第一列的fieldname属性输入"库存名称",第二列的fieldname属性输入"出库总数",第三列
fieldname属性输入"库存总数"(注:输入时不包含双引号)

每列的TITLE--->CAPTION设置显示的标题.

每死的WIDTH设置长度.





ngcr2001 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 GDTOPONE 的回复:]
不好意思,现在有事要做了,我先忙,不明白就留给下位热心人帮你好了
[/Quote]没事,还是很感谢老大!
ngcr2001 2008-07-09
  • 打赏
  • 举报
回复
非常感谢大家,明天加分后再结~
^-^
ngcr2001 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 GDTOPONE 的回复:]
双激DBGrid可以设置格子的显示长度的
[/Quote]
select查询处理的字段双击也能设置吗?
GDTOPONE 2008-07-09
  • 打赏
  • 举报
回复
不好意思,现在有事要做了,我先忙,不明白就留给下位热心人帮你好了
GDTOPONE 2008-07-09
  • 打赏
  • 举报
回复
双激DBGrid可以设置格子的显示长度的
GDTOPONE 2008-07-09
  • 打赏
  • 举报
回复
格子可以在设计时定长的
ngcr2001 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 GDTOPONE 的回复:]
不明白"使用了union all后显示的时候字段的长度会被拉长"是什么意思,如果你不想用union all可以改改JeffChung的SQL语句:


库存名称 出库总数 库存总数
库存1 33 400
库存2 20 800



SQL code
select a.库存名称,b.出库数量 as 出库总数,a.入库数量 as 库存总数 from
( Select Name as 库存名称,Sum(Num) as 入库数量 from Stocks group by Name) a,
( Select Name as 出库名称,Sum(num) as …
[/Quote]
就是用了union all以后在DBGrid中显示出来的时候,头个字段如'库存名称'这个字段的格子会变得很长,老大没遇到过这种问题么~
GDTOPONE 2008-07-09
  • 打赏
  • 举报
回复
不明白"使用了union all后显示的时候字段的长度会被拉长"是什么意思,如果你不想用union all可以改改JeffChung的SQL语句:


库存名称 出库总数 库存总数
库存1 33 400
库存2 20 800



select a.库存名称,b.出库数量 as 出库总数,a.入库数量 as 库存总数 from
( Select Name as 库存名称,Sum(Num) as 入库数量 from Stocks group by Name) a,
( Select Name as 出库名称,Sum(num) as 出库数量 from OutStocks group by Name) b
where a.库存名称 = b.出库名称


simonhehe 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ngcr2001 的回复:]
大家再帮忙看看
“使用了union all后显示的时候字段的长度会被拉长”的问题,有解决的方法没?
如果能解决的话,明天加分后结贴,感谢这么多热心人!!
[/Quote]
你说的字段拉长是指?

 --试下这样
SELECT 库存名称 = Name,入库数量,出库数量
FROM
(Select Name, Sum(Num) as 入库数量 from Stocks group by Name) A
FULL JOIN (Select Name, Sum(num) as 出库数量 from OutStocks group by Name) B
ON A.NAME = B.NAME

liangpei2008 2008-07-09
  • 打赏
  • 举报
回复


select 库存名称, sum(出库数量) as 出库总数, sum(入库数量) as 库存总数
from (Select Name as 库存名称, 0 as 出库数量, Num as 入库数量
from Stocks
union all
Select Name as 库存名称, num as 出库数量, 0 as 入库数量
from OutStocks) m
group by 库存名称
gyk120 2008-07-09
  • 打赏
  • 举报
回复
字段编辑器的“New Field”里面的“size”应该可以设置吧
simonhehe 2008-07-09
  • 打赏
  • 举报
回复
不过现在遇到一个小问题,库存名称这一字段很长,有没方法在代码里面设置这字段的长度?
--
--如下,修改AA表col1字段的长度为10
ALTER TABLE AA ALTER COLUMN col1 varchar(10)
ngcr2001 2008-07-09
  • 打赏
  • 举报
回复
大家再帮忙看看
“使用了union all后显示的时候字段的长度会被拉长”的问题,有解决的方法没?
如果能解决的话,明天加分后结贴,感谢这么多热心人!!
xiangzi15 2008-07-09
  • 打赏
  • 举报
回复
汗,这么一会,这么多人回复啊
xiangzi15 2008-07-09
  • 打赏
  • 举报
回复
6楼正解
JeffChung 2008-07-09
  • 打赏
  • 举报
回复

select * from
( Select Name as 库存名称,Sum(Num) as 入库数量 from Stocks group by Name) a,
( Select Name as 出库名称,Sum(num) as 出库数量 from OutStocks group by Name) b
where a.库存名称 = b.出库名称

yuanguangxing 2008-07-09
  • 打赏
  • 举报
回复
那也简单了,Select Name as 库存名称,Sum(Num) as 入库数量,0 as 出库数量 from Stocks group by Name
UNION ALL
Select Name as 出库名称,0 as 入库数量,Sum(num) as 出库数量 from OutStocks group by Name
simonhehe 2008-07-09
  • 打赏
  • 举报
回复

SELECT 库存名称 = Name,入库数量,出库数量
FROM
(Select Name, Sum(Num) as 入库数量 from Stocks group by Name) A
FULL JOIN (Select Name, Sum(num) as 出库数量 from OutStocks group by Name) B
ON A.NAME = B.NAME

加载更多回复(10)

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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