Office中国论坛/Access中国论坛

标题: 查询帮助 [打印本页]

作者: 小何    时间: 2007-5-12 16:18
标题: 查询帮助
我一个表内有三个数据项(20F\40F\40HF),在这三个数据项内当一个数据项数据大于0时,基它两项肯定是0.但如果用查询得到箱型.就是当20F大于0时箱型就显示20F,当40F大于0时箱型就显示40F,当40HF大于0时箱型就显示40HF.

另一个在查询里如何用快捷自定义菜单将查询的箱型资料导出呢?

如例子.(在查询里,我20F已设置.但是同时将40F和40HF不知道怎么设置在同一个箱型里)[attach]24361[/attach]

作者: 谢健    时间: 2007-5-12 17:03
你提到的问题,真有些看不懂,因为那是你的业务,外人很少熟悉的,建议你先参考刘小军的通用查询示例,里面有详细讲解,如学会了这个通用查询,那么大部份查询功能都可以轻易做到![attach]24362[/attach]

作者: 小何    时间: 2007-5-12 18:15
我这个其它就是,将20F/40F/40HF各项显示到箱型里.格式如下:



<TABLE  cellSpacing=0 cellPadding=0 width=377 border=0 x:str>

<COLGROUP>

<COL style="WIDTH: 41pt; mso-width-source: userset; mso-width-alt: 1760" width=55>

<COL style="WIDTH: 47pt; mso-width-source: userset; mso-width-alt: 2016" width=63>

<COL style="WIDTH: 56pt; mso-width-source: userset; mso-width-alt: 2400" width=75>

<COL style="WIDTH: 55pt; mso-width-source: userset; mso-width-alt: 2336" width=73>

<COL style="WIDTH: 83pt; mso-width-source: userset; mso-width-alt: 3552" width=111>





id

20f

40f

40hf

箱型



1

14

0

0

20F



2

0

1

0

40F



3

0

2

0

40F



4

0

0

7

40HF



5

0

5

0

40F



6

3

0

0

20F



7

7

0

0

20F



8

8

0

0

20F

<TR  height=26>

<TD class=xl23  width=55 height=26 x:num><FONT face=宋
作者: 小何    时间: 2007-5-12 19:17
怎么没有帮我啊急死人了.大家好心一下吧
作者: Grant    时间: 2007-5-12 19:35
SELECT 副表.id, 副表.[20f], 副表.[40f], 副表.[40hf], IIf([20F]>0,"20F",IIf([40f]>0,"40f",IIf([40hf]>0,"40hf"))) AS 箱型
FROM 副表;
都会写第一个iif了为什么就不会用镶套
作者: 小何    时间: 2007-5-12 22:28
呵呵~~~不好意思,谢谢你了!我想问一下,那如果在子数据内同一个ID号有2行数据时,第2行肯定不用>0数据,箱型如何也显示与第一行一样的呢?

[此贴子已经被作者于2007-5-12 16:29:49编辑过]


作者: Grant    时间: 2007-5-13 06:05
有个先后顺序~
作者: 小何    时间: 2007-5-14 16:38
能具体说一下吗?怎么操作
作者: hi-wzj    时间: 2007-5-14 16:49
表结构设计欠妥,建议更改为:  id  箱型  值   

这样能减少空间占用,减少条件的判断.当有新的箱型出现时不需要更改数据库结构.
作者: 小何    时间: 2007-5-14 18:00
问题我们现在表无法重新设计了,我这已经用了2年了,表内好多数据.
作者: 一点通    时间: 2007-5-14 18:06
用IIF继续分析下去

SELECT 副表.id, 副表.[20f], 副表.[40f], 副表.[40hf], IIf([20F]>0,"20F",IIf([40F]>0,"40F",IIf([40HF]>0,"40HF"))) AS 箱型
FROM 副表;

作者: 小何    时间: 2007-5-14 18:26
一点通大师,问题是我不知道怎么分析下去了哦!呵呵~~本人笨~~请教帮忙
作者: 一点通    时间: 2007-5-14 18:29
我已经给你做了例子了
作者: 小何    时间: 2007-5-14 18:59
以下是引用一点通在2007-5-14 10:06:00的发言:


用IIF继续分析下去

SELECT 副表.id, 副表.[20f], 副表.[40f], 副表.[40hf], IIf([20F]>0,"20F",IIf([40F]>0,"40F",IIf([40HF]>0,"40HF"))) AS 箱型
FROM 副表;

你这个在主表里可以,但如果在子数据内同一个ID号有2行数据时,第2行肯定不会>0数据,箱型如何也显示与第一行一样的呢?
[attach]24406[/attach]


[此贴子已经被作者于2007-5-14 11:04:17编辑过]


作者: 一点通    时间: 2007-5-14 19:09
看不明你的主表子表什么的
作者: 小何    时间: 2007-5-14 19:17
这样的,我先不要管主表.看





副表









id


主表ID


20f


40f


40hf


箱号


箱型








11


1


3


0


0


24536546









12


1


0


0


0


3543534









13


1


0


0


0


35435









14


2


0


2


0


365









15


<FONT style="FONT-SIZE: 9pt" face=宋体 color=#00
作者: 一点通    时间: 2007-5-14 19:22
这样的数据输入本来就是一个错误,表的制作也是一个错误

[此贴子已经被作者于2007-5-14 11:22:41编辑过]


作者: 小何    时间: 2007-5-14 19:32
呵呵~~~先不管错不错误,看能不能实现!
作者: 一点通    时间: 2007-5-14 19:47

作者: Grant    时间: 2007-5-14 22:45
一开始也不知道你需求什么,想了想,原来是子记录大于2条以上.

汗~想了很多方法,最后改成了模块发现iif判断相当慢,又将其改进.....

速度好多了,望有人改进,想单用查询来做,想了半天还是想不通.

[attach]24410[/attach]





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3