在单个查询中从多个表中获取数据

时间:2013-10-18 11:21:30

标签: mysql sql database oledb

我有以下表作为LocalBarcode:

enter image description here

以及随后Barcodecancel enter image description here取消:

我想采取:

  1. 总条形码数

  2. IsUpload为真的条形码数

  3. 来自LocalBarcode的

    1. isUpload为真的条形码计数
    2. 来自BarcodeCancel。

      我设计了以下查询:

      select  localbarcode.(select count(barcode)  
                              from localbarcode 
                             where Int([TimeStamp])= Format(CDate('10/18/2013'))), 
              localbarcode.(select count(isupload)  
                              from localbarcode 
                             where isupload=0), 
              BarcodeCancel.(select count(barcode)  
                              from BarcodeCancel 
                             where Int([TimeStamp])= Format(CDate('10/18/2013'))) 
            from localbarcode,BarcodeCancel
      

      但是这个查询在第一行给我错误。

      请帮帮我。

      修改

      enter image description here

3 个答案:

答案 0 :(得分:1)

    select  (select count(barcode)  
                    from localbarcode 
                   where Int([TimeStamp])= Format(CDate('10/18/2013'))), 
            (select count(isupload)  
                    from localbarcode 
                   where isupload=0), 
            (select count(barcode)  
                    from BarcodeCancel 
                   where Int([TimeStamp])= Format(CDate('10/18/2013'))) 
     from dual

您需要使用虚拟表“dual”。我做了一个简化的尝试:http://sqlfiddle.com/#!2/15291/3

答案 1 :(得分:1)

您可以使用以下查询获得所需的输出:

从LocalBarcode中选择count(LocalBarcode.Barcode),count(lb.Barcode),count(lb1.Barcode),在LocalBarcode.Barcode = lb.Barcode和LocalBarcode.IsUpload = 1上连接LocalBarcode lb在LocalBarcode上连接Barcodecancel lb1 .Barcode = lb1.Barcode和LocalBarcode.roleIsUpload = 1

答案 2 :(得分:1)

您还可以使用以下查询获得结果:

select count(*)barcodes_total,(从LocalBarcode中选择count(*),其中IsUpload = 1)barcodes_upload_total,(从Barcodecancel中选择count(*),其中IsUpload = 1)来自LocalBarcode的Barcodecancel_upload_total