我有以下查询:
SELECT sauda_date,
ExpiryDate,
Scrip_Code,
SUM(CASE WHEN Buy_sell = 1 THEN Trade_Qty ELSE 0 END) AS BuyQty,
SUM(CASE WHEN Buy_sell = 1 THEN Market_Rate ELSE 0 END) AS BuyRate,
SUM(CASE WHEN Buy_sell = 1 THEN Trade_Qty * Market_Rate ELSE 0 END) AS BuyAmount,
SUM(CASE WHEN Buy_sell = 2 THEN Trade_Qty ELSE 0 END) AS SellQty,
SUM(CASE WHEN Buy_sell = 2 THEN Market_Rate ELSE 0 END) AS SellRate,
(CASE WHEN SUM(CASE WHEN Buy_sell = 1 THEN Trade_Qty ELSE 0 END)>
SUM(CASE WHEN Buy_sell = 2 THEN Trade_Qty ELSE 0 END)
THEN 'BF' ELSE 'BT' END ) as TradeType,
SUM(CASE WHEN Buy_sell = 2 THEN Trade_Qty * Market_Rate ELSE 0 END) AS SellAmount,
SUM(CASE WHEN Buy_sell = 1 THEN Trade_Qty ELSE 0 END)
- SUM(CASE WHEN Buy_sell = 2 THEN Trade_Qty ELSE 0 END) as NETQTY,
SUM(CASE WHEN Buy_sell = 1 THEN Trade_Qty * Market_Rate ELSE 0 END)
- SUM(CASE WHEN Buy_sell = 2 THEN Trade_Qty * Market_Rate ELSE 0 END)as NetAmt,
SUM(CASE WHEN Buy_sell = 2 THEN Trade_Qty * Market_Rate ELSE 0 END)
- SUM(CASE WHEN Buy_sell = 1 THEN Trade_Qty * Market_Rate ELSE 0 END) as PNLAmt
FROM tradeFile
where Inst_Type='FUTIDX' OR
Inst_Type='FUTSTK' and
Sauda_Date between
convert(datetime,'" + dtpForDate.Value.Date.ToShortDateString() + "') and
convert(datetime,'" + dtpToDate.Value.Date.ToShortDateString() + "')
group by Scrip_Code,ExpiryDate,sauda_date
order by Scrip_Code,ExpiryDate,sauda_date
这个查询给了我以下结果:
在此查询中,我使用的是 saudadate 组。也按 saudadate 订购。
它最终向我展示了 2013 年 2 月 28 日,并从 2013 年 3 月 1 日、2013 年 3 月 2 日...... 2013 年 3 月 22 日进一步上市。
我想让记录按顺序分组。即首先是 2013 年 2 月 28 日,然后是 2013 年 3 月 1 日、2013 年 3 月 2 日、2013 年 3 月 3 日……
我应该在上述查询中进行哪些更改?
删除 order by 对上述查询的结果没有影响。
以及转换(varchar(11),sauda_date)
也没有任何区别。
sauda_date 是 nvarchar
我的预期结果:
Sauda_Date Expiry_Date ScripCode
28 Feb 2013 ..... ADANIENT
1 MAR 203 ...... ADANIENT
1 Mar 2013 ....... ADANIENT
28 FEB 2013 ....... TCS
2 MAR 2013 .... TCS