select?t1.shop,sum(t1.qty)?as?qty,t2.sum_qty?from?表名?as?t1,

專注于為中小企業(yè)提供成都網(wǎng)站設計、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)武威免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
(select?sum(qty)?as?sum_qty?from?表名)?as?t2
group?by??t1.shop,t2.sum_qty
時間條件你自己加一下吧,應該沒問題吧?
這里假設表格為:一個類型表和一個新聞表,取出類型表中的每個新聞類型都查出新聞表中屬于該類型的最新的前10條
select?標題,編號,時間,類型編號,類型名稱?from?
(?select?
RANK()OVER(PARTITION?BY?新聞表.類型編號?ORDER?BY?新聞表.時間?DESC)?AS
RANK2,?標題,編號,時間,新聞表.類型編號,類型名稱?from?
新聞表?left?join?類型表?On?新聞表.類型編號?=?類型表.類型編號)?T
where?RANK2=10
CREATE TABLE #test(
itemCode VARCHAR(10),
itemAmount INT
);
go
INSERT INTO #test
SELECT '1010001', 1000 UNION ALL
SELECT '1010002', 500 UNION ALL
SELECT '1010003', 700 UNION ALL
SELECT '1010004', 200 UNION ALL
SELECT '1010005', 1300 UNION ALL
SELECT '1010006', 1200 UNION ALL
SELECT '1010007', 100 UNION ALL
SELECT '1010008', 600 UNION ALL
SELECT '1010009', 800 UNION ALL
SELECT '1010010', 700 UNION ALL
SELECT '1010011', 500 UNION ALL
SELECT '1010012', 1000 UNION ALL
SELECT '1010013', 300 UNION ALL
SELECT '1010014', 400 UNION ALL
SELECT '1010015', 900 UNION ALL
SELECT '1010016', 800 UNION ALL
SELECT '1010017', 200 UNION ALL
SELECT '1010018', 100 UNION ALL
SELECT '1010019', 1100 UNION ALL
SELECT '1010020', 1200;
go
With MyCte AS
(
SELECT
ROW_NUMBER() OVER( ORDER BY itemAmount DESC ) AS NO,
t.itemCode,
t.itemAmount
FROM
#test t
)
SELECT
itemCode,
itemAmount,
STR( 100 * itemAmount / tSum.itemAmountSum, 5, 2) + '%' AS [占比],
CASE
WHEN (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO = MyCte.NO ) / tSum.itemAmountSum = 0.5 THEN 'A'
WHEN (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO = MyCte.NO ) / tSum.itemAmountSum 0.5
AND (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO = MyCte.NO ) / tSum.itemAmountSum 0.8 THEN 'B'
ELSE 'C' END AS [類別]
FROM
MyCte,
(SELECT SUM(itemAmount) * 1.0 AS itemAmountSum FROM #test) tSum
ORDER BY
MyCte.itemAmount DESC;
itemCode itemAmount 占比 類別
---------- ----------- ------ --
1010005 1300 9.56% A
1010006 1200 8.82% A
1010020 1200 8.82% A
1010019 1100 8.09% A
1010001 1000 7.35% A
1010012 1000 7.35% A
1010015 900 6.62% B
1010016 800 5.88% B
1010009 800 5.88% B
1010010 700 5.15% B
1010003 700 5.15% B
1010008 600 4.41% C
1010002 500 3.68% C
1010011 500 3.68% C
1010014 400 2.94% C
1010013 300 2.21% C
1010017 200 1.47% C
1010004 200 1.47% C
1010007 100 0.74% C
1010018 100 0.74% C
(20 行受影響)
SQL Server 2008 Express 下測試通過.
可用如下方法:
以sqlserver2008r2為例,可以從系統(tǒng)表中sys.objects來取字段。
1、打開SQL Server Managment Studio,并登陸到指定數(shù)據(jù)庫。
2、新建一個查詢窗口。
3、使用如下語句:
select?name?from?sys.objects?where?type='U';
查詢結(jié)果:
其中name列的內(nèi)容就是當前登陸用戶下的所有表名。
建立表結(jié)構如下: CREATE table [dbo].[tmp_Trans]( IDintidentity, PO_NO varchar(20) null, PO_Itemno varchar(20) null, Qty numeric(18,6) null, Trans_Date datetime null, Doc_no varchar(20) null)要求取相同PO_NO按Trans_Date倒序排序的前兩條記錄。 1.Where子句嵌套SELECT的方式。在嵌套的SELECT語句中可以與主表的字段相關聯(lián),達到分類的目的。 這種方式又有三種寫法: 1)如果表中有主鍵,可以用IN的方式。 SELECT * FROM tmp_Trans t WHERE ID IN( SELECT TOP 2 ID FROM tmp_Trans WHERE PO_NO=t.PO_NO ORDER BY Trans_Date DESC)2)如果沒有主鍵,可以用判斷在本條記錄前有多少條記錄的方式。但使用這種方式時如果遇到Trans_Date相同的情況會不準。如當存在Trans_Date最大的記錄有三條時,這三條記錄都會查出來。 SELECT *FROM tmp_Trans tWHERE (SELECT COUNT(*) FROM tmp_Trans WHERE PO_NO=t.PO_NO AND Trans_DateT.Trans_Date)23)使用CROSS APPLY子句。CROSS APPLY是SQL Server 2005后出來的新功能,用于在表連接時傳入?yún)?shù)。 SELECT DISTINCT b.* FROM tmp_Trans a CROSS APPLY(SELECT TOP(2) * FROM tmp_Trans WHERE a.PO_NO=PO_NO ORDER BY Trans_Date DESC) b 2.使用自動生成的Row Number。在使用ROW_NUMBER()時可以用PARTITION BY子句來分組。建議使用這種方式。select * from (
sqlserver(T_SQL):
DDL—數(shù)據(jù)定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數(shù)據(jù)操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數(shù)據(jù)控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)
Oracle SQL(P_SQL) 語句可以分為以下幾類:
1.數(shù)據(jù)操作語言語句[Data manipulation language,DML]
2.數(shù)據(jù)定義語言語句[Data definition language,DDL]
3.事務控制語句[transaction control statement]
4.會話控制語句[session control statement]
本文名稱:sqlserver分類,sqlserver分類加序號
文章路徑:http://chinadenli.net/article5/dsshgoi.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站制作、網(wǎng)站導航、網(wǎng)站設計公司、虛擬主機、關鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)