declare @0 varchar(20),@1 varchar(20) ,@daima varchar(20),@mingcheng varchar(20) select @0='2008-04-26',@1='2008-05-25',@daima='',@mingcheng='' select isnull(a.客户或供应商代码, b.客户或供应商代码) as'客户或供应商代码' ,isnull(a.客户或供应商名称,b.客户或供应商名称) as'客户或供应商名称' ,isnull((a.凭证总计-b.凭证总计),isnull(a.凭证总计,b.凭证总计)) as'凭证总计' from (SELECT T0.CardCode AS '客户或供应商代码', T0.CardName AS '客户或供应商名称', SUM(T0.DocTotal) AS '凭证总计'
FROM [dbo].[OPDN] T0
where (T0.DOCDATE>=@0 AND T0.DOCDATE <=@1 ) or (T0.CardCode LIKE @daima and T0.CardName LIKE @mingcheng) GROUP BY T0.CardCode,T0.CardName) a full join (SELECT T0.CardCode AS '客户或供应商代码', T0.CardName AS '客户或供应商名称', SUM(T0.DocTotal) AS '凭证总计' FROM [dbo].[ORPD] T0 where (T0.DOCDATE>=@0 AND T0.DOCDATE <=@1) or (T0.CardCode LIKE @daima and T0.CardName LIKE @mingcheng) GROUP BY T0.CardCode,T0.CardName)b on a.客户或供应商代码=b.客户或供应商代码
诸位帮我看看 我写的这个语句 怎么@daima @mingcheng 这两个变量不起作用 也就是说我在运行这个语句时 前三个变量依次填上 时间1 时间2 daima;显示出的结果跟只填写时间1 时间2 的结果是一样的 也就是说 第三、四个变量 没有起到应起的作用 问题应该出在判断条件这,但是我应该如何修改呢 急!!!看or 条件设置对不对 应该怎么修改 ? 这个思路应该不会有错 大家帮我详细看看
FROM [dbo].[OPDN] T0
where (T0.DOCDATE>=@0 AND T0.DOCDATE <=@1 ) or (T0.CardCode LIKE @daima and T0.CardName LIKE @mingcheng) GROUP BY T0.CardCode,T0.CardName) a full join (SELECT T0.CardCode AS '客户或供应商代码', T0.CardName AS '客户或供应商名称', SUM(T0.DocTotal) AS '凭证总计' FROM [dbo].[ORPD] T0 where (T0.DOCDATE>=@0 AND T0.DOCDATE <=@1) or (T0.CardCode LIKE @daima and T0.CardName LIKE @mingcheng) GROUP BY T0.CardCode,T0.CardName)b on a.客户或供应商代码=b.客户或供应商代码
诸位帮我看看 我写的这个语句 怎么@daima @mingcheng 这两个变量不起作用 也就是说我在运行这个语句时 前三个变量依次填上 时间1 时间2 daima;显示出的结果跟只填写时间1 时间2 的结果是一样的 也就是说 第三、四个变量 没有起到应起的作用 问题应该出在判断条件这,但是我应该如何修改呢 急!!!看or 条件设置对不对 应该怎么修改 ? 这个思路应该不会有错 大家帮我详细看看
解决方案 »
- 菜鸟求教sql查询语句,请高人指点~~~~
- MySQL中你需要注意的几个SQL语句
- 100分的问题, 渴望帮助.
- 像 google、baidu 他们的搜索引擎 用的数据库是什么? SQLSERVER ? Oracle?
- SQL Server 2008 递归 + 内连接 = ??? (排除视图)
- sql2000企业管理器,同时连接远程数据库服务器的两个数据库,怎么连接
- 急!请教一个SQL的排序问题
- 请问在SQL Server中,可以存放二进制数据的字段都有什么啊?哪个存得最多?
- 如何做这样的判断?
- 啊啊啊,求大神指教,怎么把主机的myeclipse和虚拟机的SQLserver2005相连接?
- 远程登陆SQL server
- 符号问题,Help!!!
(T0.DOCDATE>=@0 AND T0.DOCDATE <=@1) OR之后的条件不管满足不满足,都会返回行记录。
(T0.DOCDATE>=@0 AND T0.DOCDATE <=@1) or (T0.CardCode LIKE @daima and T0.CardName LIKE @mingcheng)
之后 (T0.CardCode LIKE @daima and T0.CardName LIKE @mingcheng)
相当于 (T0.CardCode LIKE '' and T0.CardName LIKE '') 这样不会有满足条件的
所以只筛选满足 (T0.DOCDATE>=@0 AND T0.DOCDATE <=@1) 的记录