|
|
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
Здравствйте! В поиске не нашел! Имею такой вапрос каторый уже давно все меня мучает. Имею базу, точнее таблицу в БД каторая состоит из полей: Название Услуги - Дата - Стоимость. Надо сформировать прайс лист на определенную дату, как это возможно сделать? Моего знания SQL хватает только на: авторSELECT DISTINCT U_name, U_Price, Max(U_Date) FROM Uslugi GROUP BY U_name, U_Price; тут я не беру дату конкретную, сформировать бы прайс лист за весь промежуток сначало, т.е. из последних дат на каждую услугу Но этого недостаточно так, как не учитываются повторения, хотя и использую DISTINCT. т.е. имеется список из услуг(могут повторятся) и ценами и датой. Я логически понимаю что тут одновременно как-то надо найти последнюю(макс дату)на каждую услугу(то есть и отсеять повторения). Как это можно реализовать с помощью SQL? Прайс лист на определенную дату? Название ---- Цена ------- Дата Продажа ---- 100 ---- -- 01.10.2010 Покупка ---- 300 ---- ---- 02.10.2010 Продажа ---- 150 ---- ----03.10.2010 Покупка ---- 200 ---- ----05.10.2010 Покупка ---- 235 ---- ----04.10.2010 вводим 06.10.2010 тоесть находим все услуги по ценам которые были последними добавленными до этого числа в итоге : Покупка ---- --- 200 ---- --- 05.10.2010 Продажа ---- --- 150 ---- --- 03.10.2010 Спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2010, 02:44 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
Как минимум таблицы должно у вас быть 2: 1-я - это список услуг, 2-я - это ид услуги, дата, цена А впосле выбирайте на здоровье: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2010, 23:58 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
Вам подойдет вот это Периодические сведения и Организация периодических сведений В Вашей модели это будет выглядеть так: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 10:01 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
Naf авторSELECT U.U_name, U.U_Price, U.U_BeginDate FROM Uslugi as U WHERE :Today BETWEEN U.U_BeginDate AND U.U_EndDate Что то я вот это не пойму :Today это параметр какой-то? можно вот про эти строчки поподробнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 18:35 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
DeathFoggyNaf авторSELECT U.U_name, U.U_Price, U.U_BeginDate FROM Uslugi as U WHERE :Today BETWEEN U.U_BeginDate AND U.U_EndDate Что то я вот это не пойму :Today это параметр какой-то? можно вот про эти строчки поподробнее :Today это дата на которую вы ищете данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 18:55 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
то есть я так понимаю для реализации прайс листа за конкретную дату конструкцию авторSELECT U.U_name, U.U_Price, U.U_BeginDate FROM Uslugi as U WHERE :Today BETWEEN U.U_BeginDate AND U.U_EndDate надо будет вставить в авторSELECT U.U_name, U.U_Price, T.MaxDate FROM (SELECT U_name, Max(U_Date) as MaxDate FROM Uslugi GROUP BY U_name) as T INNER JOIN Uslugi as U ON (U.U_Date=T.MaxDate) AND (U.U_name=T.U_name) Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 22:14 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
я не против: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 08:17 |
|
||
|
SQL запрос для формирования прайса.
|
|||
|---|---|---|---|
|
#18+
DeathFoggyто есть я так понимаю для реализации прайс листа за конкретную дату конструкцию авторSELECT U.U_name, U.U_Price, U.U_BeginDate FROM Uslugi as U WHERE :Today BETWEEN U.U_BeginDate AND U.U_EndDate надо будет вставить в авторSELECT U.U_name, U.U_Price, T.MaxDate FROM (SELECT U_name, Max(U_Date) as MaxDate FROM Uslugi GROUP BY U_name) as T INNER JOIN Uslugi as U ON (U.U_Date=T.MaxDate) AND (U.U_name=T.U_name) Так? не совсем, это две разные модели данных, запросы соответственно к ним разные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 08:18 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36881041&tid=1542511]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 501ms |

| 0 / 0 |
