115.150.91.247求一段SQL的统计代码写法?A表:ID 名称 价格 商家
1 aa 3 商家1
2 bb 5 商家2
3 cc 7 商家1
4 ee 6 商家2
B表:
ID 名称 价格 商家
3 cc 7 商家1
2 bb 5 商家2
1 aa 3 商家1
4 ee 6 商家2
1 aa 3 商家1
2 bb 5 商家2
3 cc 7 商家1
3 cc 7 商家1目的:从A表取出所有的商家是商家1的记录,并从B表统计出商家是商家1,且和A表记录相同的记录次数统计,查询显示成新的数据,说着麻烦,大家可以看看例子,形成象下面的统计,如:
商家1:
ID 名称 价格 统计
1 aa 3 2
3 cc 7 3这个SQL怎么写?
1 aa 3 商家1
2 bb 5 商家2
3 cc 7 商家1
4 ee 6 商家2
B表:
ID 名称 价格 商家
3 cc 7 商家1
2 bb 5 商家2
1 aa 3 商家1
4 ee 6 商家2
1 aa 3 商家1
2 bb 5 商家2
3 cc 7 商家1
3 cc 7 商家1目的:从A表取出所有的商家是商家1的记录,并从B表统计出商家是商家1,且和A表记录相同的记录次数统计,查询显示成新的数据,说着麻烦,大家可以看看例子,形成象下面的统计,如:
商家1:
ID 名称 价格 统计
1 aa 3 2
3 cc 7 3这个SQL怎么写?
from TableA a join (select ID,名称,价格,count(*) as 统计 from TableB where 商家='商家1' group by ID,名称,价格) b on a.ID=b.ID and a.名称=b.名称 and a.价格=b.价格
where a.商家='商家1'
(
ID INT,
名称 VARCHAR(10),
价格 INT,
商家 VARCHAR(10)
)
INSERT INTO A
SELECT
1, 'aa', 3, '商家1' UNION ALL SELECT
2, 'bb', 5, '商家2' UNION ALL SELECT
3, 'cc', 7, '商家1' UNION ALL SELECT
4, 'ee', 6, '商家2'CREATE TABLE B
(
ID INT,
名称 VARCHAR(10),
价格 INT,
商家 VARCHAR(10)
)
INSERT INTO B
SELECT
3, 'cc', 7, '商家1' UNION ALL SELECT
2, 'bb', 5 ,'商家2' UNION ALL SELECT
1, 'aa', 3 ,'商家1' UNION ALL SELECT
4, 'ee', 6 ,'商家2' UNION ALL SELECT
1, 'aa', 3 ,'商家1' UNION ALL SELECT
2, 'bb', 5 ,'商家2' UNION ALL SELECT
3, 'cc', 7 ,'商家1' UNION ALL SELECT
3, 'cc', 7 ,'商家1'DECLARE @con VARCHAR(10)
SET @con='商家1'
SELECT A.ID,A.名称,A.价格,统计=COUNT(1) FROM A INNER JOIN B ON A.ID=B.ID WHERE A.商家=@con GROUP BY A.ID,A.名称,A.价格
/*
ID 名称 价格 统计
----------- ---------- ----------- -----------
1 aa 3 2
3 cc 7 3(2 行受影响)
*/
select a.ID,a.名称,a.价格,isnull(b.统计,0) as 统计
from TableA a left join (select ID,名称,价格,count(*) as 统计 from TableB where 商家='商家1' group by ID,名称,价格) b on a.ID=b.ID and a.名称=b.名称 and a.价格=b.价格
where a.商家='商家1'等于0也可以查出来
select a.ID,a.名稱,a.價格,isnull(b.統計,0) as 統計
from TableA a left join (select ID,名稱,價格,count(*) as 統計 from TableB where 商家='商家1' group by ID,名稱,價格) b on a.ID=b.ID and a.名稱=b.名稱 and a.價格=b.價格
where a.商家='商家1'