Я быстро просмотрел, чтобы увидеть, были ли какие-либо предыдущие вопросы, связанные с моей проблемой, не нашел ни одного.

В основном я делаю эту базу данных для своего онлайн-курса Cert IV, и если бы я не застрял полностью (как в последние несколько месяцев), я бы не просил серьезной помощи в этом

У меня есть база данных антиквариата, которая должна показывать имя клиента, дату продажи, название продукта и цену продажи, а также перечислять только те предметы, которые были проданы между двумя датами, и заказывать их по указанным датам. Все, что я делаю, не приводит к тому, что данные повторяются

У меня есть 4 таблицы для этого конкретного запроса Клиенты, Продажи и Продукты, Таблицы настроены следующим образом:

CREATE TABLE [dbo].[Customers](
[CustID] [int] IDENTITY(1,1) NOT NULL,
[firstName] [varchar](50) NOT NULL,
[lastName] [varchar](50) NOT NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED

CREATE TABLE [dbo].[Sales](
[SalesNo] [int] IDENTITY(1,1) NOT NULL,
[CustID] [int] NOT NULL,
[salesDate] [date] NOT NULL,
CONSTRAINT [PK_Sales] PRIMARY KEY CLUSTERED

CREATE TABLE [dbo].[Products](
[ProductID] [int] IDENTITY(1,1) NOT NULL,
[prodName] [varchar](50) NOT NULL,
[prodYear] [int] NOT NULL,
[prodType] [varchar](50) NOT NULL,
[salesPrice] [money] NOT NULL,
CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED

CREATE TABLE [dbo].[ProductSales](
[ProductID] [int] NOT NULL,
[SalesNo] [int] NOT NULL

Мой запрос выглядит так

SELECT (Customers.firstName + ' ' + Customers.lastName) AS Customers_Name,
    Sales.salesDate, Products.prodName, Sales.salesPrice
FROM Customers, ProductSales JOIN Products ON ProductSales.ProductID = Products.ProductID
                             JOIN Sales ON ProductSales.SalesNo = Sales.SalesNo
WHERE Sales.salesDate BETWEEN '2016-06-03' AND '2016-06-06'
ORDER BY Sales.salesDate

Вот что появляется, когда я запускаю этот запрос:

Queried Data

Любая помощь была бы признательна.

2
user3618687 22 Ноя 2018 в 10:36

1 ответ

Лучший ответ

Попробуйте ниже - вам нужно правильно присоединиться к столу клиентов

SELECT (Customers.firstName + ' ' + Customers.lastName) AS Customers_Name,
    Sales.salesDate, Products.prodName, Sales.salesPrice
FROM ProductSales JOIN Products ON ProductSales.ProductID = Products.ProductID
                             JOIN Sales ON ProductSales.SalesNo = Sales.SalesNo
JOIN Customers on  Sales.[CustID]=Customers.[CustID]
WHERE Sales.salesDate BETWEEN '2016-06-03' AND '2016-06-06'
ORDER BY Sales.salesDate
2
Fahmi 22 Ноя 2018 в 07:44