查看: 951|回复: 11
|
如何用 SQL 来 map 两个table?
[复制链接]
|
|
我有两个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
可能做到吗? |
|
|
|
|
|
|
|
发表于 20-10-2006 08:14 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 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? |
|
|
|
|
|
|
|
发表于 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? |
|
|
|
|
|
|
|
发表于 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? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|