为什么这不会提取任何数据?

时间:2012-12-01 01:35:22

标签: sql db2

以下代码段是多个表的连接。我需要显示从澳大利亚任何人订购的所有订单号,客户名称,产品名称,价格和数量。我得到表标题,但没有行。这有什么问题吗?

SELECT 
      "order".orderno AS ord, 
      customer.cname, 
      product.prodname, 
      customer.country_code, 
      orderdetl.price, 
      orderdetl.qty, 
      country.country_code
    FROM 
      prema01.country, 
      prema01.customer, 
      prema01."order", 
      prema01.orderdetl, 
      prema01.product
    WHERE 
      customer.country_code = 'AUS'

我已经更改了代码,验证了表格中有数据,但它仍然是空白的。 我完全被难倒了。

SELECT O.ORDERNO, C.CNAME, PN.PRODNAME, ODT.PRICE, ODT.QTY, ODT.QTY * PN.PRODSELL AS TOTAL
FROM prema01.ORDER O, prema01.CUSTOMER C, prema01.ORDERDETL ODT, prema01.PRODUCT PN, prema01.COUNTRY CT
WHERE CT.COUNTRY_NAME = 'Australia' 
AND C.COUNTRY_CODE = CT.COUNTRY_CODE 
AND C.CUSTNO = O.CUSTNO 
AND O.ORDERNO = ODT.ORDERNO 
AND PN.PRODNO = ODT.PRODNO AND O.ORDERNO <= 60
ORDER BY TOTAL DESC;

忘了添加更改。表中有数据,我已经在实际验证过。

2 个答案:

答案 0 :(得分:1)

对于初学者,您需要一些加入条件,例如

Select
  r.country_code,
  c.cname
From
  prema01.country r
    inner join
  prema01.customer c
    on r.country_code = c.country_code

您需要以类似的方式与其他表建立关系。

此外,您确定您的表中包含任何数据。确实

Select
  Count(*)
From
  prema01.country

什么都归还? <怎么样

Select
  Count(*)
From
  prema01.customer
Where
  country_code = 'AUS'

答案 1 :(得分:0)

修正了,我正在寻找'澳大利亚',而我在我的国家/地区表中有'澳大利亚'。谢谢你的帮助