Создать запрос SQL

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Создать запрос SQL

Сообщение Calvin » 15.02.2007 (Чт) 16:01

У меня есть таблица:

Поставщики__ДатаСобытия__Событие_Сумма

хххххххххххх___ххххххххххх__Отгрузка_ххххх

хххххххххххх___ххххххххххх__Оплата___хххх


Мне нужно создать запрос:

Поставщики__ДатаОтгр_СуммаОтгр__ДатаОпл_СуммаОпл
Последний раз редактировалось Calvin 15.02.2007 (Чт) 16:09, всего редактировалось 1 раз.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.02.2007 (Чт) 16:09

И каким же образом определяется, какая из строк "оплата" соответствует какой из строк "отгрузка"?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 15.02.2007 (Чт) 16:11

В поле "событие" есть критерии - или отгрузка или оплата....я там указал...просто не бросается в глаза
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.02.2007 (Чт) 16:16

:lol:

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

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 15.02.2007 (Чт) 16:27

ты прав...есть номер заказа...пускай это будет самое первое поле "номер заказа" (поле "Покупатель" можно отбросить вообще) ....помоги плиз...а то я заманался ... уже несколько дней пытаюсь побороть....
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 15.02.2007 (Чт) 16:37

вот наглядно видно здесь
У вас нет доступа для просмотра вложений в этом сообщении.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.02.2007 (Чт) 16:43

Если это в access - см. справку по TRANSFORM.
Если не в access - http://www.sql.ru/faq/faq_topic.aspx?fid=358

Да, Calvin, что будешь делать, если оплата одного заказа производится несколькими приёмами?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.02.2007 (Чт) 17:19

GSerg писал(а):Да, Calvin, что будешь делать, если оплата одного заказа производится несколькими приёмами?


И отгружаться может тоже за несколько раз.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 15.02.2007 (Чт) 17:23

Да я согласен с вами...Мне хотя бы пока по одной дате на каждое событие для начала.......а вообще хотелось бы, чтобы поле датаотгрузки или дата оплаты размножались...но мне хотябы в простом варианте......сказать честно, тот пример, что GSerg подкинул я не сильно врубился
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.02.2007 (Чт) 17:48

Calvin писал(а):сказать честно, тот пример, что GSerg подкинул я не сильно врубился

Разбираться в том примере не обязательно (хотя желательно), его можно просто использовать.
Это аналог перекрестного запроса в Access. Когда таблица разворачивается в другую таблицу, часть столбцов которой составляют группировки значений строк.
Lasciate ogni speranza, voi ch'entrate.

S397
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 02.12.2005 (Пт) 13:31

Сообщение S397 » 15.02.2007 (Чт) 20:08

Код: Выделить всё
SELECT T1.[№ заказа], T1.[Дата события] AS [Дата отгрузки], T2.[Дата события] AS [Дата оплаты],T1.[Отгружено], T2.[Оплачено] FROM [Таблица 1] T1 Left JOIN [Таблица 1] T2 ON T1.[№ заказа] = T2.[№ заказа] AND T1.[Отгружено] = T2.[Оплачено]  Where T2.[Событие] = 'Оплата'  AND T1.[Событие]= 'Отгрузка'
. Эта конструкция работает в Access. Не проверял на синтаксис но более првильная конструкция для MS SQL
Код: Выделить всё
SELECT IsNull(T1.[№ заказа], T2.[№ заказа]), T1.[Дата события] AS [Дата отгрузки], T2.[Дата события] AS [Дата оплаты],T1.[Отгружено], T2.[Оплачено] FROM [Таблица 1] T1 FULL JOIN [Таблица 1] T2 ON T1.[№ заказа] = T2.[№ заказа] AND T1.[Отгружено] = T2.[Оплачено] AND T2.[Событие]   = 'Оплата' AND T1.[Событие] = 'Отгрузка'

И в том и другом случае я бы сделал 3 таблицы
Заказы, Оплаты, Отгрузки


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

    TopList