【发布时间】:2012-04-19 12:33:06
【问题描述】:
我有一个由 Customer、Product 和 Transaction 表组成的数据库。
我正在尝试编写一条 SQL 语句来列出所有在 2000 年没有进行交易的客户的姓名和 SSN。
Transaction 表中的 TransactionDate 列是日期/时间数据类型(例如 2000-12-18 00:00:00)。
这是我写的 SQL 代码:
SELECT DISTINCT CustomerName, Customer.CustomerSSN
FROM Customer, Transaction
WHERE Customer.CustomerSSN=Transaction.CustomerSSN
AND YEAR(TransactionDate)<>2000;
不等于符号 () 似乎由于某种原因不起作用。当我将其更改为等号时,它确实返回了正确的结果...
感谢任何建议。
【问题讨论】:
-
定义“不工作”。你有年份 2000 年的记录吗?
-
您的 SQL 查询中的逻辑与您对问题的陈述不符。它返回具有 2000 年以外交易的客户即使他们在 2000 年也有交易(不是您想要的)。下面的答案都是得到你想要的结果的所有方法。
标签: mysql sql database relational-database