再问〈求一个sql语句写法〉
A表:
cardtypeid,date_time
1 2007/02/03
2 2007/03/03
3 2007/04/03
2 2007/04/03
B表:
cardtypeid, cardtypeName
1 甲
2 乙
3 丙
查询结果:
一, 按照月份统计
月份 甲 乙 丙 合计
2007/02 1 0 0 1
2007/03 0 1 0 1
2007/04 0 1 1 2
合计 1 2 1 4
二,按照日期统计
日期 甲 乙 丙 合计
2007/02/03 1 0 0 1
2007/03/03 0 1 0 1
2007/04/03 0 1 1 2
合计 1 2 1 4
三,按照星期统计(2007/02/03和2007/03/03都是星期二,2007/04/03是星期六)
星期 甲 乙 丙 合计
星期二 1 1 0 2
星期六 0 1 1 2
合计
潇洒老乌龟大哥的写法如下,
但是我想成存储过程在前端调用时
会报错,“拒绝了对对象.....的select 权限”,
这个时候就必须在数据库安全设置里对此用户设置“db_owner”的权限。
有没有其他的写法可以避免此情况?(不带exec(@sql)命令的)
————————————————————————————————————
declare @sql varchar(8000)
set @sql = 'select isnull(月份,''合计'') 月份'
select @sql = @sql + ' , sum(case cardtypeName when ''' + cardtypeName + ''' then 1 else 0 end) [' + cardtypeName + ']'
from (select distinct cardtypeName from (select a.cardtypeid , convert(varchar(7),a.date_time,120) 月份 , b.cardtypeName from A,B where a.cardtypeid = b.cardtypeid) t) as m
set @sql = @sql + ' ,count(*) as 合计 from (select a.cardtypeid , convert(varchar(7),a.date_time,120) 月份 , b.cardtypeName from A,B where a.cardtypeid = b.cardtypeid) t group by 月份 with rollup'
exec(@sql)
...全文
相关推荐
sql语句like多个条件的写法实例
本篇将详细讲解如何在SQL语句中使用`LIKE`来处理多个条件。在SQL中,如果你想要根据多个条件来筛选数据,通常会结合`AND`或`OR`操作符来实现。
PB脚本中SQL语句写法与SQL中语句写法对照
PB脚本中SQL语句写法与SQL中语句写法对照PB脚本中SQL语句写法与SQL中语句写法对照是非常重要的知识点,因为PB脚本和SQL语言在写法和应用中有所不同。
sql语句妙用,各种sql语句的详细用法与讲解
注意,当字符串包含在SQL语句中时,需要确保单引号的正确处理。例如,如果一个字符串中包含单引号,可以使用两个单引号('')来表示一个实际的单引号。
SQL删除多列语句的写法
首先,我们需要理解SQL Server中的`ALTER TABLE`语句,它是用于修改现有表结构的关键命令。当需要删除表中的一个或多个列时,可以结合`DROP COLUMN`子句来完成这一操作。
SQL中代替Like语句的另一种写法
"SQL中代替Like语句的另一种写法"在SQL中, LIKE 语句是一个非常常用的语句,它用于搜索某个模式的字符串。然而,在某些情况下,使用 LIKE 语句可能会出现一些性能问题。


疑难问题
