佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 950|回复: 11

如何用 SQL 来 map 两个table?

[复制链接]
发表于 20-10-2006 03:41 PM | 显示全部楼层 |阅读模式
我有两个table,
stockA table, stockB table...

Stock A
--------------------------
item1 1/1/2006
item2  5/5/2006
item3 7/7/2006

Sotck B
------------------------
item4 4/4/2006
item5 6/6/2006
item6 9/9/2006

我要的result, Order By Date
------------------------------------------
item1 1/1/2006
item4 4/4/2006
item2  5/5/2006
item5 6/6/2006
item3 7/7/2006
item6 9/9/2006

可能做到吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 20-10-2006 08:14 PM | 显示全部楼层
用UNION ALL 就可以做到了
回复

使用道具 举报

 楼主| 发表于 26-10-2006 01:01 AM | 显示全部楼层
谢谢了...
我懂如何做了...

我想问,在 SQL 如何 order by date?
因为我发现order DESC 的时候..
是没问题, 不过它会当 9月>10月..
因为10的前面是1.
9>1..
如何解决?
回复

使用道具 举报

发表于 26-10-2006 01:13 AM | 显示全部楼层
原帖由 eastken 于 26-10-2006 01:01 AM 发表
谢谢了...
我懂如何做了...

我想问,在 SQL 如何 order by date?
因为我发现order DESC 的时候..
是没问题, 不过它会当 9月>10月..
因为10的前面是1.
9>1..
如何解决?


储存 date 的 column 的 data type 应该设为 Date, 才可以正确使用 order by.
回复

使用道具 举报

 楼主| 发表于 26-10-2006 02:01 AM | 显示全部楼层
原帖由 goatstudio 于 26-10-2006 01:13 AM 发表


储存 date 的 column 的 data type 应该设为 Date, 才可以正确使用 order by.


我用的是database access..
datatype 是 date/time.
store在databse 的value是, mm/dd/yyyy... e.g. 9/20/2006
但order的排法, 还是
9>8>7>6>5>4>3>2>1>12>11>10
回复

使用道具 举报

发表于 26-10-2006 09:10 AM | 显示全部楼层
原帖由 eastken 于 26-10-2006 02:01 AM 发表


我用的是database access..
datatype 是 date/time.
store在databse 的value是, mm/dd/yyyy... e.g. 9/20/2006
但order的排法, 还是
9>8>7>6>5>4>3>2>1>12>11>10


这不太可能... 有没有 sample data?
回复

使用道具 举报

Follow Us
发表于 26-10-2006 10:45 AM | 显示全部楼层
原帖由 eastken 于 26-10-2006 02:01 AM 发表


我用的是database access..
datatype 是 date/time.
store在databse 的value是, mm/dd/yyyy... e.g. 9/20/2006
但order的排法, 还是
9>8>7>6>5>4>3>2>1>12>11>10


方便的话给我你的access db看看。。如果是datetime的话是不可能的。。以你的情况来说是应该是varchar,等
回复

使用道具 举报

 楼主| 发表于 26-10-2006 03:45 PM | 显示全部楼层
我懂了... 因为我UNION了, 它无法识任那个field是date/time type.. 它当所有field as text type.

Select * From (select ItemName, postDate From TableA
UNION
Select ItemDesc, createdDate From TableB)
Order by postDate

如何 declare  postdate as date/time type?
回复

使用道具 举报


ADVERTISEMENT

发表于 26-10-2006 05:57 PM | 显示全部楼层
原帖由 eastken 于 26-10-2006 03:45 PM 发表
我懂了... 因为我UNION了, 它无法识任那个field是date/time type.. 它当所有field as text type.

Select * From (select ItemName, postDate From TableA
UNION
Select ItemDesc, createdDate From TableB)
...


select * from (
select *, convert(DateTime, aaa, 105) as PDate from (
Select * From (select ItemName, postDate as aaa From TableA
UNION
Select ItemDesc, createdDate as aaa From TableB)) as MixTable
) as aTable order by PDate

try it...
回复

使用道具 举报

 楼主| 发表于 26-10-2006 06:34 PM | 显示全部楼层
不能...
Undefined function 'Convert' in expression
回复

使用道具 举报

发表于 27-10-2006 12:51 AM | 显示全部楼层
原帖由 eastken 于 26-10-2006 06:34 PM 发表
不能...
Undefined function 'Convert' in expression


你用的是 Access, 应该用 CDate.
我建议你, 把你的 UNION 的 sql, 放进一个 Query 里. 然后从 Query Builder 里, 用 CDate 来 convert.
回复

使用道具 举报

 楼主| 发表于 29-10-2006 01:59 AM | 显示全部楼层
原帖由 goatstudio 于 27-10-2006 12:51 AM 发表


你用的是 Access, 应该用 CDate.
我建议你, 把你的 UNION 的 sql, 放进一个 Query 里. 然后从 Query Builder 里, 用 CDate 来 convert.


不是很明..
有example吗?,什么是builder?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 12-11-2024 09:22 AM , Processed in 0.147182 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表