sql内连接在空白表上

时间:2015-07-19 16:39:27

标签: c# sql sql-server join inner-join

我对简单的事情有一个复杂的查询,但我已设法让它工作。当idclient为1时查询有效,但当idclient为5时出现问题。

问题是该客户没有订购任何东西,他只是付了一些钱。所以没有a.price,几乎整个表都是空白的,我希望结果像-1200,00或者减去付款金额。我的问题是表的第一部分不存在,因此内连接是不可能的,第二部分也不存在。有什么建议“快速解决”? :)

See the difference between these two implementations by creating new object in addEight method

import java.util.ArrayList;

public class Notes {

    public static ArrayList<String> addEight(ArrayList<String> userRhythm) {
        userRhythm = new ArrayList<String>();
        userRhythm.add("n8");
        return userRhythm;
    }
    public static void main(String args[]){
    ArrayList<String> userRhythm = new ArrayList<String>();
    userRhythm = Notes.addEight(userRhythm);
    System.out.println(userRhythm);


    ArrayList<String> userRhythm1 = new ArrayList<String>();
    Notes.addEight(userRhythm1);
    System.out.println(userRhythm1);

    }
}

(代码中可能存在一些输入错误,但不要因为我翻译了我的原始代码而烦恼,所以也许在翻译中丢失了一些字母。代码是正确的)

1 个答案:

答案 0 :(得分:1)

这总是只取一行吗?至少看起来像它,如果是这样的话,你可以使用类似这样的变量:

declare @price decimal(10,2) = 0, @payment decimal(10,2) = 0

SELECT 
    @price = SUM(order.quant * item.itprice ) * ( 100 - order.percent ) / 100)
FROM
    item 
    inner join order 
        ON order.iditem = item.id 
WHERE
    order.idclient = 1 

SELECT 
    @payment = SUM(amount)
FROM   
    payed 
WHERE
    idcom = 1

select @price - @payment