Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有相同数据的sql查询结果_Sql - Fatal编程技术网

具有相同数据的sql查询结果

具有相同数据的sql查询结果,sql,Sql,早上好,伙计们,我已经写了一个SQL代码 Select if(Tax = 0,amount,0.00) as zerotax, if(Date < '2018-04-01',amount,0.00) as xivVat, if(Date >= '2018-04-01',amount,0.00) as xvVat, account, reference, paiddate, rep, amount, amount_due, code, dat

早上好,伙计们,我已经写了一个SQL代码

    Select if(Tax = 0,amount,0.00) as zerotax,  
    if(Date < '2018-04-01',amount,0.00) as xivVat,  
    if(Date >= '2018-04-01',amount,0.00) as xvVat,  
    account, reference, paiddate, rep, amount, amount_due, code, date into 
    "Memory\Temp"  
from debttran    
where code in ('IN','CN') and (PaidDate Between '2018-01-13' and '2018-08-13')
order by PaidDate ascending
选择(税=0,金额,0.00)作为零税,
如果(日期<'2018-04-01',金额0.00)作为增值税,
如果(日期>='2018-04-01',金额,0.00)为xvVat,
账户、参考、付款日期、代表、金额、到期金额、代码、日期
“内存\Temp”
来自Debtran
其中,代码in('in','CN')和(日期介于'2018-01-13'和'2018-08-13'之间)
按配对升序排序
基本上,代码所做的是从没有任何税收的发票中获取数据,然后从4月1日之前由于增值税变化而开具发票的发票中获取数据,然后从4月1日及之后开具发票的发票中获取数据

当我运行代码时,它工作得非常完美,但唯一的问题是当在xixVat或xvVat上也会显示on zerotax列AMENT if时

我如何编写代码来基本上检查它是否相同并减去它

SQL结果:


我认为您可以更改您的
语句,如果
语句:

if(Date < '2018-04-01' AND Tax > 0,amount,0.00) as xivVat,  
if(Date >= '2018-04-01' AND Tax > 0,amount,0.00) as xvVat,  
if(日期<'2018-04-01',税费>0,金额,0.00)作为增值税,
如果(日期>='2018-04-01'且税费>0,金额为0.00)为xvVat,

这将防止这些字段在未缴纳税款时显示值。

我不确定是否完全理解您试图应用的逻辑,但您可以使用如下用例:

 Select 
     **case 
         when  if(Date < '2018-04-01',amount,0.00) < if(Date >= '2018-04-01',amount,0.00)
         then if(Date < '2018-04-01',amount,0.00) --choose what to show in this case, it can be the difference between the 2 columns
         else if(Date >= '2018-04-01',amount,0.00) --Same is here
     end as FinalVat**,
    if(Date < '2018-04-01',amount,0.00) as xivVat,  
    if(Date >= '2018-04-01',amount,0.00) as xvVat
from
选择
**案例
当if(日期<'2018-04-01',金额0.00)='2018-04-01',金额0.00)
然后,如果(日期<'2018-04-01',金额,0.00)--选择在本例中显示的内容,则可以是两列之间的差异
否则,如果(日期>='2018-04-01',金额,0.00)--此处相同
以FinalVat结束**,
如果(日期<'2018-04-01',金额0.00)作为增值税,
如果(日期>='2018-04-01',金额,0.00)为xvVat
从…起

我不确定在每种情况下都要显示什么。

SQL中没有
if
。您使用的是哪种DBMs产品?您好,我使用的是dbsys