Abdalla Ben Omran Ответов: 1

Как я могу выполнить некоторые операции с запросом ?


Из двух таблиц я сделал следующий запрос: "посмотрите, что я пробовал"

1 - моя проблема в том, что я получаю очень огромное число обратно в строках, которое является "70805" в 00:00:01 времени, и на самом деле это должно быть только в строках " 713 " в 00:00:00 времени .

2 - запрос находится между двумя таблицами [dbo].[Заголовок покупки FXXL$] und [dbo].[FXXL$Purchase Line] и должен получить столбцы : описание, размер, цвет, количество, NO_, бренд и

Дата заказа между 1.6.2018 и 31.12.2018
Бренд должен быть = 'CUBE'
Ship-to Name 2 должен быть = 'Zentrallager'

и результат должен быть отсортирован по размеру, а Colur


3 - Как я могу найти различные типы бренда = "куб", если он имеет разные цвета и размеры ?

Что я уже пробовал:

select pl.Brand,pl.Description,pl.Size,pl.Colour,pl.Quantity, pl.No_ , ph.[Ship-to Name], ph.[Ship-to Name 2], ph.[Order Date] 
from [FXXL$Purchase Header]ph ,[FXXL$Purchase Line]pl

where ph.[Order Date] between'01.06.2018' and '31.12.2018' and ph.[Ship-to Name 2] ='Zentrallager' and pl.Brand = 'CUBE'
order by pl.Size, pl.Colour 

1 Ответов

Рейтинг:
4

OriginalGriff

Проблема заключается в том, что вы используете SELECT для возврата строк из двух таблиц: а это означает, что SQL пытается лучше всего возвращать отдельную строку для каждой комбинации.
Например, если у вас есть две строки в таблице A и три строки в таблице B, то простой запрос:

SELECT A.ID, A.[Desc], B.ID, B.[User]
FROM TableA A, TableB B
Дам тебе шесть рядов:
ID      Desc     ID      User
1       D1       1       U1        
1       D1       2       U2        
1       D1       3       U3        
2       D2       1       U1        
2       D2       2       U2        
2       D2       3       U3
По два для каждой строки в таблице а и по три для каждой строки в таблице Б
Если вы хотите вернуть только строки в TabelA с некоторой информацией из связанных строк в TableB, то вам нужно использовать соединение для соответствующих столбцов:
SELECT A.ID, A.[Desc], B.[User]
FROM TableA A
JOIN TableB ON a.ID = b.TableAID
Поскольку у нас нет доступа к вашим данным и мы понятия не имеем, какие могут быть отношения, вам придется самостоятельно разработать точный формат соединения!


[no name]

Король SQL-сервера "пол" . Еще раз благодарю вас . Я нашел связь между этими двумя таблицами .
я буду счастлив, если вы объясните мне пункт № 3 .

OriginalGriff

Я полагаю, Вы имеете в виду объединения?
Если это так:
https://www.w3schools.com/sql/sql_join.asp
это хорошее место для начала (они довольно мощные, так что у вас есть немного чтения впереди!)

[no name]

отличный. спасибо

OriginalGriff

Всегда пожалуйста!