|
|
|
|
|
для: tAleks
(20.08.2006 в 13:51)
| | >Я вот сейчас экспериментирую, и что с ней, что без нее результат одинаковый.
В принципе так и есть, это из-за условия prices_type.id_base_price = price.id_price_type, но если бы его не было, то выводилось бы слишком много дублированных записей, GROUP BY позволяет группировать такие записи по определённому полю. | |
|
|
|
|
|
|
|
для: cheops
(19.08.2006 в 16:18)
| | Запрос в принципе работает. Спасибо.
А зачем вот эта строка:
GROUP BY prices_type.id_price_type
|
Я вот сейчас экспериментирую, и что с ней, что без нее результат одинаковый. | |
|
|
|
|
|
|
|
для: Trianon
(19.08.2006 в 18:56)
| | Согласен. | |
|
|
|
|
|
|
|
для: cheops
(19.08.2006 в 16:18)
| | Только не WHERE а ON | |
|
|
|
|
|
|
|
для: tAleks
(19.08.2006 в 12:01)
| | Тогда попробуйте следующий запрос
SELECT prices_type.id_price_type AS id_price_type,
prices_type.name AS name,
prices_type.id_currency AS id_currency,
price.name AS id_base_price ,
prices_type.commentary AS commentary
FROM prices_type LEFT JOIN prices_type AS price
WHERE prices_type.id_base_price = price.id_price_type
GROUP BY prices_type.id_price_type
|
| |
|
|
|
|
|
|
|
для: cheops
(19.08.2006 в 11:39)
| | Попробовал.....
Если в таблице есть записи, у которых нет базовой цены, то они не попадают в результат запроса. Т.е. из такой таблицы:
--------------------------------------------------------------------------
id_price_type | name | id_currency | id_base_price | commentary |
--------------------------------------------------------------------------
1 Входная 1 0 Цена покупки
2 Цена клиента 1 1 Цена для клиента
3 VIP 1 0 Цена для VIP клиента
--------------------------------------------------------------------------
|
Извлекается только запись 2. А надо чтобы все извлекались. | |
|
|
|
|
|
|
|
для: tAleks
(19.08.2006 в 10:49)
| | Можно поступить следующим образом
SELECT prices_type.id_price_type AS id_price_type,
prices_type.name AS name,
prices_type.id_currency AS id_currency,
price.name AS id_base_price ,
prices_type.commentary AS commentary
FROM prices_type, prices_type AS price
WHERE prices_type.id_base_price = price.id_price_type
GROUP BY prices_type.id_price_type
|
| |
|
|
|
|
|
|
|
для: cheops
(19.08.2006 в 00:24)
| | Тиблица `prices_type`
--------------------------------------------------------------------------
id_price_type | name | id_currency | id_base_price | commentary |
--------------------------------------------------------------------------
1 Входная 1 NULL Цена покупки
2 Цена клиента 1 1 Цена для клиента
3 VIP 1 2 Цена для VIP клиента
--------------------------------------------------------------------------
|
Т.е. "Цена клиента" имеет базовую цену "Входная", и к примеру потом может рассчитываться динамически,
берем базовую цену ("Входная"), прибавляем 5% и получаем "Цена клиента".
А "VIP" имеет базовую цену "Цена клиента" и уже рассчитывается относительно этой базоовой цены.
Все примерно как в "1С: Торговля и Склад" (только упроцено).
Нужен запрос чтобы сделать вот такую таблицу:
--------------------------------------------------------------------------
id_price_type | name | id_currency | id_base_price | commentary |
--------------------------------------------------------------------------
1 Входная 1 Цена покупки
2 Цена клиента 1 Входная Цена для клиента
3 VIP 1 Цена клиента Цена для VIP клиента
--------------------------------------------------------------------------
|
Чтобы в поле "id_base_price" были не циферки а названия этих цен.
И если это не правильно, то как сделать с двумя таблицами? | |
|
|
|
|
|
|
|
для: tAleks
(18.08.2006 в 19:47)
| | Хм... а с двумя таблицами не проще выйдет? Что-то не очень понятно, что таблица моделирует и какой запрос нужно осуществить? | |
|
|
|
|
|
|
|
для: tAleks
(18.08.2006 в 19:47)
| | Народ!!!! ХЕЛП!!!! Гарю!!!! | |
|
|
|
|