多个表上的Sum()是错误的结果

时间:2015-09-07 04:40:30

标签: mysql

我尝试查询但结果总是一样,请帮我查一下查询中的错误

Penjualan

listViewController = [[CBListViewController alloc] initWithStyle:UITableViewStylePlain];
    bookmarkController = [[CBBookmarksViewController alloc] initWithStyle:UITableViewStylePlain];
    settingsController = [[CBActivityViewController alloc] init ];
    searchController = [[CBSearchViewController alloc] initWithNibName:@"CBSearchViewController" bundle:nil];
    nearbyController = [[CBViewOnMapViewController alloc] init ];
   UINavigationController *bNavigationController = [[UINavigationController alloc] initWithRootViewController:bookmarkController];
    self.navigationControllerForBookmark = bNavigationController;

    UITabBarItem *tab2=[[UITabBarItem alloc]init];
    tab2.image = [[UIImage imageNamed:@"bookmark.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab2.selectedImage = [[UIImage imageNamed:@"bookmark_active.png"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab2.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);
    navigationControllerForBookmark.tabBarItem = tab2;


    UINavigationController *cNavigationController = [[UINavigationController alloc] initWithRootViewController:settingsController];
    self.navigationControllerForSettings = cNavigationController;

    UITabBarItem *tab3=[[UITabBarItem alloc]init];
    tab3.image = [[UIImage imageNamed:@"activites.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab3.selectedImage = [[UIImage imageNamed:@"activites_active.png"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab3.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);
    navigationControllerForSettings.tabBarItem = tab3;


    UINavigationController *dNavigationController = [[UINavigationController alloc] initWithRootViewController:searchController];
    self.navigationControllerForSearch = dNavigationController;

    UITabBarItem *tab4=[[UITabBarItem alloc]init];
    tab4.image = [[UIImage imageNamed:@"Search.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab4.selectedImage = [[UIImage imageNamed:@"Search_active.png"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    self.navigationController.tabBarItem = tab4;
    tab4.imageInsets=UIEdgeInsetsMake(5, 0, -5, 0);
    navigationControllerForSearch.tabBarItem=tab4;

    UINavigationController *eNavigationController = [[UINavigationController alloc] initWithRootViewController:nearbyController];
    self.navigationControllerForNearby = eNavigationController;

    UITabBarItem *tab5=[[UITabBarItem alloc]init];
    tab5.image = [[UIImage imageNamed:@"nearby.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab5.selectedImage = [[UIImage imageNamed:@"nearby_active.png"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    self.navigationController.tabBarItem = tab5;
    tab5.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);
    navigationControllerForNearby.tabBarItem = tab5;

    [navigationControllerForNearby.navigationBar setBackgroundImage:[UIImage imageNamed:@"headerBar"] forBarMetrics:UIBarMetricsDefault];


    UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:listViewController];
    self.navigationController = aNavigationController;


    UITabBarItem *tab1=[[UITabBarItem alloc]init];
    tab1.image = [[UIImage imageNamed:@"review.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab1.selectedImage = [[UIImage imageNamed:@"review_active.png"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    tab1.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);
    navigationController.tabBarItem = tab1;


    [[UITabBar appearance] setBarTintColor:GRAY_COLOR];


    self.tabBarController = [[UITabBarController alloc] init];


    self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController, navigationControllerForNearby, navigationControllerForSearch, navigationControllerForBookmark, navigationControllerForSettings, nil];

 self.window.rootViewController = self.tabBarController;

Pelunasan

+--------+----------------+------+------------+----------+----------+-------------+-----------+-------------+----------------+
|  oid   |    client      | qty  | b_digital  | b_large  | b_kotak  | b_laminate  | b_potong  | no_invoice  |  invoice_date  |
+--------+----------------+------+------------+----------+----------+-------------+-----------+-------------+----------------+
| 41468  | Budi           |  19  |      6000  |       0  |       0  |          0  |      500  |     125596  | 9/7/2015 11:00 |
| 41467  | Budi           |   6  |      4000  |       0  |       0  |          0  |        0  |     125596  | 9/7/2015 11:00 |
| 41466  | Budi           |   1  |      5500  |       0  |       0  |          0  |        0  |     125596  | 9/7/2015 11:00 |
| 41524  | mega Utama     |   1  |      5500  |       0  |       0  |          0  |        0  |     125640  | 9/7/2015 8:00  |
| 41523  | Berkah Surya   |  24  |      4000  |       0  |       0  |        750  |        0  |     125638  | 9/7/2015 8:00  |
| 41522  | Maximize Play  |   2  |     10000  |       0  |       0  |          0  |        0  |     125639  | 9/7/2015 8:00  |
+--------+----------------+------+------------+----------+----------+-------------+-----------+-------------+----------------+

结果查询(错误结果)

+------+-------------+-----------------+---------+
| pid  | no_invoice  |    pay_date     | tot_pay |
+------+-------------+-----------------+---------+
|   1  |     125596  | 9/7/2015 9:40   |    2500 |
|   2  |     125596  | 9/7/2015 9:41   |    5000 |
|   3  |     125640  | 9/7/2015 10:31  |    2000 |
|   4  |     125639  | 9/7/2015 10:31  |    5000 |
|   5  |     125639  | 9/7/2015 10:31  |    2000 |
+------+-------------+-----------------+---------+

我想要的结果(正确结果)

+-------------+----------------+-----------+--------------+------------+-----------+
| no_invoice  |    client      | subtotal  | tgl_invoice  | total_byr  | tgl_bayar |
+-------------+----------------+-----------+--------------+------------+-----------+
|     125640  | mega Utama     |     5500  | 9/7/2015     | 2000       | 9/7/2015  |
|     125639  | Maximize Play  |    20000  | 9/7/2015     | 7000       | 9/7/2015  |
|     125638  | Berkah Surya   |   114000  | 9/7/2015     | NULL       | NULL      |
|     125596  | Budi           |   153000  | 9/7/2015     | 22500      | 9/7/2015  |
+-------------+----------------+-----------+--------------+------------+-----------+

此处SQL数据:https://userscloud.com/mep01cocf2bt

+--------+----------------+------+------------+----------+----------+-------------+-----------+-------------+----------------+
|  oid   |    client      | qty  | b_digital  | b_large  | b_kotak  | b_laminate  | b_potong  | no_invoice  |  invoice_date  |
+--------+----------------+------+------------+----------+----------+-------------+-----------+-------------+----------------+
| 41468  | Budi           |  19  |      6000  |       0  |       0  |          0  |      500  |     125596  | 9/7/2015 11:00 |
| 41467  | Budi           |   6  |      4000  |       0  |       0  |          0  |        0  |     125596  | 9/7/2015 11:00 |
| 41466  | Budi           |   1  |      5500  |       0  |       0  |          0  |        0  |     125596  | 9/7/2015 11:00 |
| 41524  | mega Utama     |   1  |      5500  |       0  |       0  |          0  |        0  |     125640  | 9/7/2015 8:00  |
| 41523  | Berkah Surya   |  24  |      4000  |       0  |       0  |        750  |        0  |     125638  | 9/7/2015 8:00  |
| 41522  | Maximize Play  |   2  |     10000  |       0  |       0  |          0  |        0  |     125639  | 9/7/2015 8:00  |
+--------+----------------+------+------------+----------+----------+-------------+-----------+-------------+----------------+

" total_byr"

的问题

1 个答案:

答案 0 :(得分:0)

select a.no_invoice, a.client, 
    (sum(a.qty*(a.b_digital+a.b_large+a.b_kotak+a.b_laminate+a.b_potong))) AS subtotal, 
    date_format(a.invoice_date,'%d/%m/%Y') as tgl_invoice,
    (select sum(b.tot_pay) from pelunasan as b where b.no_invoice=a.no_invoice) as total_byr,
    (select distinct date_format(c.pay_date,'%d/%m/%Y') from pelunasan as c where c.no_invoice=a.no_invoice) as tgl_bayar
from penjualan as a
group by a.no_invoice
order by a.no_invoice desc