如何实现这种功能[记录统计问题]

coble 2005-07-15 01:45:37
表District:ID[编号],Name[地名]
表Sorts:ID[编号],Name[类名]
表Info:ID[编号],DistID[地区编号],SortID[类名编号],Content[内容]

功能:检索表District中的所有字段时统计在表INFO中所有类别的记录数

实现:(本人想法)

1.用视图和存储过程做数据统计
V_Count "SELECT ID,DistID,SortID FROM [INFO]"

存储过程:sp_count(@DistID,@SortID)返回相应的记录总数

2.建统计表
COUNT ID[编号],DistID[地区编号],SortID[类名编号],CNT[记录数]
实现方法:INFO表插入记录时,对表COUNT做相应的CNT累加。
...全文
135 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
coble 2005-07-15
  • 打赏
  • 举报
回复
SELECT a.ID, @Cnt=b.cnt ---这里出了问题

FROM DJS_Area a RIGHT OUTER JOIN

.......
coble 2005-07-15
  • 打赏
  • 举报
回复
首先谢谢你的帮忙!!

SELECT a.ID, b.cnt AS Cnt
FROM DJS_Area a RIGHT OUTER JOIN
(SELECT DistID, COUNT(ID) AS cnt
FROM info
WHERE sortid = 7[类别变量] AND distid = 5[地区变量]
GROUP BY DistID) b ON a.ID = b.DistID

我改了一下,是这样的效果

我想把这个写成存储过程返回的是 CNT 的值但是有错误
错误提示:
ERR141 向变量赋值的select 语句不能与数据检索操作结合使用。
tx1icenhe 2005-07-15
  • 打赏
  • 举报
回复
select a.ID as DistID,b.id as SortID ,isnull(c.cnt,0) as cnt
from District a cross join Sorts b
left join (
select DistID,SortID,count(*) as cnt
from info
group by DistID,SortID
) as c
on a.ID=c.DistID and b.id=c.SortID
coble 2005-07-15
  • 打赏
  • 举报
回复
SELECT a.ID, ISNULL(b.cnt, 0) AS cnt
FROM DJS_Area a LEFT OUTER JOIN
(SELECT DistID, COUNT(ID) AS cnt
FROM info
WHERE sortid = 6
GROUP BY DistID) b ON a.ID = b.DistID AND a.ID = 1
coble 2005-07-15
  • 打赏
  • 举报
回复
SELECT a.ID, ISNULL(b.cnt, 0) AS cnt

FROM DJS_Area a LEFT OUTER JOIN

(SELECT DistID, COUNT(ID) AS cnt

FROM info

WHERE sortid = [类别编号]--第二个参数

GROUP BY DistID) b ON a.ID = b.DistID

可以实现在对每个地区且在[类别编号]下的记录总数

问如果加一地区条件[地区编号]???

coble 2005-07-15
  • 打赏
  • 举报
回复
SQL 语句是没有问题的

结果如下:

1 1
2 0
3 0
4 0
5 3
但还不是要求的那一种
可能是我还没有表达清楚
功能:检索表District中的所有字段时统计在表INFO中所有类别的记录数

功能:检索表District中的所有字段时统计在表INFO中所有相应类别的记录数
比如:
DISTID SORTID CNT
1 2 1
1 3 2
... ... ...
意思
在地区编号为 1 类别编号是 2 的记录是 1
在地区编号为 1 类别编号是 3 的记录是 2
而DISTID和SORTID是函数参数例:GetRecCount(DISTID,SORTID)返回值是记录总数
tx1icenhe 2005-07-15
  • 打赏
  • 举报
回复
字段看错
select a.ID,isnull(b.cnt,0) as cnt
from District left join (
select DistID,count(distinct SortID) as cnt
from info
group by DistID
) as b
on a.ID=b.DistID

没有测试,可能还有问题
tx1icenhe 2005-07-15
  • 打赏
  • 举报
回复
1、不要建统计表,因为冗余,不好维护(要维护好必须用触发器,效率就成问题)
2、查询:
select a.DistID,isnull(b.cnt,0) as cnt
from District left join (
select DistID,count(distinct SortID) as cnt
from info
group by DistID
) as b
on a.DistID=b.DistID
内容概要:本文系统研究了全桥LLC谐振变换器的脉冲频率调制(PFM)控制策略,深入剖析其拓扑结构与工作原理,涵盖全桥逆变电路、谐振回路(Lr、Cr、Lm)、变压器及整流滤波电路的功能与协同机制。文章详细分析了变换器在不同开关频率下的三种工作模式(fs > fr、fs = fr、fm < fs < fr),阐明了其在感性区域实现原边零电压开通(ZVS)和副边零电流关断(ZCS)的软开关特性。重点阐述了PFM控制通过调节开关频率来改变谐振阻抗,从而稳定输出电压的基本原理,并论证了其在高效率(尤其轻载时)、低电磁干扰(EMI)和宽输入输出范围方面的显著优势。研究构建了基于Matlab/Simulink的完整仿真模型,对系统的稳态性能、动态响应(负载突变)和效率进行了全面仿真验证,结果证实PFM控制能有效实现输出电压的精确稳定,具备优良的动态响应能力和全负载范围内的高效率。最后,文章总结了PFM策略的有效性,并展望了结合自抗扰控制(ADRC)等先进算法优化控制性能及开展硬件实验验证的未来发展方向。; 适合人群:具备电力电子、自动控制或相关领域基础知识的研究生、科研人员及从事高性能电源设计的工程技术人员。; 使用场景及目标:①深入理解LLC谐振变换器的拓扑结构、工作模式划分及其软开关物理机制;②掌握PFM控制策略的设计思想、参数整定方法及其在提升电源转换效率与降低EMI中的核心应用;③为开发高效率、高可靠性的开关电源(如通信电源、服务器电源)提供理论依据、仿真建模指导与性能优化的技术参考。; 阅读建议:在阅读时应紧密结合文中给出的仿真模型框图与关键波形,重点精读工作模式分析与PFM控制原理部分,建议动手复现仿真以深刻体会频率调节对增益和效率的影响规律,并特别关注轻载效率表现,同时思考未来展望中提及的先进控制算法融合方向,以激发创新研究思路。

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧