SQL Server多个左联接与多个内部联接

时间:2019-02-16 17:58:19

标签: sql sql-server sql-server-2012

我有多个表,如下所示,我要在其中获取:

Engine.ename
Sum of FuelConsumption.quantity
Sum of Maintainance.pricetotal
Sum of CounterHistory.total

Engine.ename分组

如果Engine.ename的选择返回空值,则应始终选择Engine.ename以及其他变量的零值。

我尝试了此操作,但失败了,我得到了所有SELECT DISTCINT e.ename, ISNUll(SUM(ch.total), 0), ISNUll(SUM(fc.quantity), 0), ISNUll(SUM(m.pricetotal), 0) FROM Engine e LEFT JOIN FuelConsumption fc ON fc.engineid = e.id LEFT JOIN Maintenance m ON m.engineid = e.id LEFT JOIN (ElectricBox eb JOIN ECounter ec ON ec.boxid = eb.ID JOIN Registration r ON r.counterid = ec.ID JOIN CounterHistory ch ON ch.regid = r.id) ON eb.engineid = e.id GROUP BY e.ename 值,但数字错误:

$("#enviar").click(function(event) {
    var formData = new FormData(this);
    var nome = $("#nome").val();
    var apelido = $("#apelido").val();
    var email = $("#email").val();
    var nome_do_negocio = $("#nome_do_negocio").val();
    var website = $("#website").val();
    var cidade = $("#cidade").val();
    var descricao = $("#descricao").val();
    var gasto = $("#gasto").val();

    console.log(nome + " " + apelido + " " + email + " " + nome_do_negocio + " " + website + " " + cidade  + " " + descricao  + " " + gasto);


    if (nome == "" || apelido == "" || email == "" || nome_do_negocio == "" || website == "" || cidade == "" || descricao == "" || gasto == "") {
        $("#error").text("Fill all inputs");
    } else {


        if (document.getElementById("file-anexo").files.length > 0) {
            var unico = 1;

            console.log("Getting File");
            var name = document.getElementById("file-anexo").files[0].name;
            var form_data = new FormData();
            var oFReader = new FileReader();
            oFReader.readAsDataURL(document.getElementById("file-anexo").files[0]);
            form_data.append("file", document.getElementById('file-anexo').files[0]);
            console.log("File apppended");

            $.ajax({
                type: "POST",
                url: "ajax/formulario.php",
                beforeSend: function() {
                    $('#loader-icon').show();
                    $('.progress-bar').width('50%');
                    $('#enviar').prop('disabled', true);

                },
                data: {
                    nome: nome, 
                    apelido: apelido,
                    email: email,
                    nome_do_negocio: nome_do_negocio,
                    website: website,
                    cidade: cidade,
                    descricao: descricao,
                    gasto: gasto,
                    unico: unico,
                },
                success:function(data)
                {


                    $.ajax({
                        url: "ajax/anexo.php", 
                        uploadProgress: function(event, position, total, percentageComplete)
                        {
                            $('.progress-bar').animate({
                                width: percentageComplete + '%'
                            }, {
                                duration: 1000
                            });
                        },
                        type: "POST",             
                        data: form_data, 
                        contentType: false,       
                        cache: false,           
                        processData:false,       
                        success: function(data)  
                        {   
                            console.log("Sucesso");
                            $('#loader-icon').hide();
                            $('.progress-bar').width('100%');
                            $('#enviar').prop('disabled', false);
                            $('.progress-bar').width('0%');
                            swal("Sucesso!", "Projeto enviado! Foi-lhe enviado um email com mais detalhes", "success");
                        }
                    });


                }

            });



        } else {

            $.ajax({
                type: "POST",
                url: "ajax/formulario.php",
                beforeSend: function() {
                    //$('#loader-icon').show();
                    $('#enviar').prop('disabled', true);
                    $('.progress-bar').width('100%');


                },
                data: {
                    nome: nome, 
                    apelido: apelido,
                    email: email,
                    nome_do_negocio: nome_do_negocio,
                    website: website,
                    cidade: cidade,
                    descricao: descricao,
                    gasto: gasto,
                },
                success:function(data)
                {
                    $('#enviar').prop('disabled', false);
                    swal("Sucesso!", "Projeto enviado! Foi-lhe enviado um email com mais detalhes", "success");
                    //alert(data);
                }

            });

        }




    }

});

在下面检查我的数据库图:

My Diagram

1 个答案:

答案 0 :(得分:0)

通过连接两个这样的选择语句解决了我的问题:

var imageURL=pm.variables.get("ImageServiceUrl");

var data=JSON.parse(responseBody);

var encoded;
data.forEach(function(arrayItem) {
  arrayItem.uri = imageURL + arrayItem.uri;
  console.log(arrayItem.uri);
})


//Using the response object directly doesn't do anything
pm.response.body=data;
//responseBoby also does nothing
responseBody=JSON.stringify(data);

谢谢