有人可以帮助我得到这个表串成以下查询..SQL嵌套查询
CREATE TABLE [dbo].[TblNdx](
[ticker] [nvarchar](12) NOT NULL,
[date] [datetime] NULL,
[time] [datetime] NULL,
[open] [float] NULL,
[high] [float] NULL,
[low] [float] NULL,
[close] [float] NULL,
[volume] [float] NULL,
[change] [float] NULL
) ON [PRIMARY]
我需要一个查询,获取最后XXX记录WHERE ...
SELECT ticker, date, time, [open], high, low, [close], volume, change
FROM TblNdx
WHERE 1=1
AND (ticker = '^IXIC')
AND (date =
(
SELECT TOP (1) date as date1
FROM TblNdx AS TblNdx_1
WHERE (ticker = '^IXIC')
ORDER BY date DESC
)
)
ORDER BY time DESC
然后将另一个列添加到计算机LASTCLOSE,这是上一个日期的上一个关闭日期... DATEDIFF(日期,日期,date1)= 1并且时间是前一天的第一个时间...换句话说,前一天...嵌套的SELECT TOP 1子句正在杀死我......任何人都擅长这个?
我不是不尊重。我是一个像每个人一样喝玛格丽塔酒的极客......!无论如何,我欣赏编辑。为了得到前一个最后关闭日期,我试图修改..任何与此代码的帮助它说'只有一个表达式可以在SELECT列表中指定当子查询没有与EXISTS引入..
我使用Visual Studio运行查询,它缩进很奇怪的方式......我想我真的不知道如何正确缩进!
SELECT ticker
, date
, time
, [open]
, high
, low
, [close]
, volume
, change
, (SELECT TOP (1) time AS time1, [close] AS lastclose
FROM TblNdx WHERE (DATEDIFF(day, date, date1) = 1)
AND (ticker = '^IXIC') ORDER BY time1 DESC) AS Expr1
FROM TblNdx AS TblNdx_2
WHERE (1 = 1) AND (ticker = '^IXIC')
AND (date = (SELECT TOP (1) date AS date1
FROM TblNdx AS TblNdx_1
WHERE (ticker = '^IXIC')
ORDER BY date1 DESC))
ORDER BY time DESC
我们都会宁愿去得到一些玛格丽塔。 -1没有表现出任何的尊重。 – 2009-11-28 23:23:27
我有一种感觉,你会从正确缩进你的代码中受益匪浅。 – 2009-11-28 23:26:34
在SQL中大喊大叫,但文字大喊大叫。 – BalusC 2009-11-29 02:47:42