我有以下查詢:順序日期分組問題
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
此查詢給我下面的結果:
在此查詢我使用GROUP BY saudadate。也按saudadate排序。
它顯示我2013年2月28日,最後從3月1日2013,2 2013年3月..... 03月22日2013年
我想有記錄進行分組順序進一步上市。 即2013年2月28日首先,然後2013年3月1日,2013年3月2日,2013年3月3日...
我應該在上述查詢中做什麼改變?
刪除順序通過在上述查詢的結果中沒有區別。
以及轉換(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
「sauda_date」的數據類型是什麼? – 2013-04-08 07:40:17
@Freelancer。 。 。你應該格式化你的查詢,以便問題可讀。 – 2013-04-08 07:40:54
這是nvarchar(50) – Freelancer 2013-04-08 07:41:28