【问题标题】:Displaying data with respect to specific date?显示特定日期的数据?
【发布时间】:2016-04-25 23:32:28
【问题描述】:

我正在尝试创建一个需要显示报告的报告系统 每个日期。

这是我的 selected_items 的表架构 这是stock_list

我在后端使用php,在前端使用java来显示 数据。我尝试了几个查询来获得所需的输出,但是 到目前为止我无法得到它。这些是我使用的一些查询。

SELECT
   COALESCE(stock_list.date, selected_items.date) AS date,
   SUM( stock_list.qty ) AS StockSum,
   SUM( stock_list.weight ) AS Stockweight,
   COUNT( selected_items.barcode ) AS BilledItems,
   SUM( selected_items.weight ) AS Billedweight
FROM stock_list join selected_items
ON stock_list.date = selected_items.date
GROUP BY COALESCE(stock_list.date, selected_items.date)
ORDER BY COALESCE(stock_list.date, selected_items.date);

这给了我前五列,但输出给了我错误的值。 然后我也尝试了Union。

SELECT SUM( qty ) AS StockSum, SUM( weight ) AS Stockweight
FROM  `stock_list` 
WHERE DATE LIKE  '08-Jan-2016'
UNION SELECT COUNT( barcode ) AS BilledItems, SUM( weight ) AS Billedweight
FROM  `selected_items` 
WHERE DATE LIKE  '08-Jan-2016'
UNION SELECT SUM( qty ) AS TotalStock, SUM( weight ) AS TotalWeight
FROM  `stock_list`;

在这里,我得到了四列的正确值,但问题是 > 结果显示在两列中,而我希望它显示在 4 列中。 任何人都可以指导我吗?我已经想到了它的 java 部分,但我不擅长 php 和 mysql。 谢谢

【问题讨论】:

  • 谢谢@LordAnomander,你能帮忙解决一下吗
  • 你会共享表架构吗?
  • 是的,确定@AnkiiG 请检查更新后的问题。谢谢
  • @LordAnomander 没问题我是编程新手,所以我喜欢尝试有时我会学到一些新东西有时我不会
  • @AndroidNewBee 您是否有机会尝试我的查询?我只是好奇它是否有效。 :)

标签: mysql sql date join union


【解决方案1】:

不幸的是,当我尝试执行此查询时,SQL Fiddle 崩溃了

SELECT sl.date AS date, B.qtySum AS StockSum, B.weightSum AS Stockweight,
C.barcodeCount AS BilledItems, C.weightSum AS Billedweight
FROM stock_list sl 
JOIN (SELECT SUM(qty) as qtySum, SUM(weight) as weightSum
      FROM STOCK_LIST GROUP BY date) AS B
ON B.date = sl.date
JOIN (SELECT SUM (weight) AS weightSum, COUNT(barcode) AS barcodeCount
      FROM SELECTED_ITEMS GROUP BY date) AS C
ON C.date = sl.date;

As it was tried here。连接的问题是行将多次连接,因此总和出错了。例如,您有四行从第二个表连接,因此总和是应有的四倍。使用子查询,您可以避免这个问题,因为您在加入变量之前对变量进行计数和求和,因此,数字应该适合。唉,我无法运行查询,所以我不能 100% 确定它是否有效,但它应该是正确的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2021-07-29
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2022-08-16
    相关资源
    最近更新 更多