Упаковка товара

MasterZ
Дата: 18.11.2009 16:28:15
Есть таблица ТаблицаМесто

КодМеста КодРодителяМеста ВесНетто ВесБрутто кодТары КолИчество
2 4.7 5.0 345 16
4 2 3.5 3.8 234 7
45 2 3.8 3.8 234 9


Подскажите пожалуйста как изменить структуру, чтобы не дублировались данные, как например в строке 1 колонка количество складвается из количеств во 2 и 3 колонках. При этом чтобы была многоуровневая иерархия. Т.е. Большая коробка в ней две поменше, в маленьких по 3 полиетиленовых пакета и т.д.

Спасибо.
а.четакова
Дата: 18.11.2009 16:45:39
MasterZ
Есть таблица ТаблицаМесто

КодМеста КодРодителяМеста ВесНетто ВесБрутто кодТары КолИчество
2 4.7 5.0 345 16
4 2 3.5 3.8 234 7
45 2 3.8 3.8 234 9


Подскажите пожалуйста как изменить структуру, чтобы не дублировались данные, как например в строке 1 колонка количество складвается из количеств во 2 и 3 колонках. При этом чтобы была многоуровневая иерархия. Т.е. Большая коробка в ней две поменше, в маленьких по 3 полиетиленовых пакета и т.д.

Спасибо.
А зачем вам менять структуру? если вам НЕ нужны данные в поле КолИчество для парент-записей, то и не пишите их туда. Если эти данные вам в самом поле нужны, но при этом требуется, чтобы они (эти парент-количества) не учитывались ГДЕ-ТО при суммировании - то там их и не учитывать. Если под "где-то" подразумевается суммирующий запрос, то в нем можно суммировать только самые внутренние полиэтиленовые мешочки - т.е. только те записи, которые никому не являются парентами.
MasterZ
Дата: 18.11.2009 17:39:14
а.четакова
А зачем вам менять структуру? если вам НЕ нужны данные в поле КолИчество для парент-записей, то и не пишите их туда. Если эти данные вам в самом поле нужны, но при этом требуется, чтобы они (эти парент-количества) не учитывались ГДЕ-ТО при суммировании - то там их и не учитывать. Если под "где-то" подразумевается суммирующий запрос, то в нем можно суммировать только самые внутренние полиэтиленовые мешочки - т.е. только те записи, которые никому не являются парентами.


Получается нужно следить за тем, чтобы данные хранились на самом нижнем уровне иерархии и в запросах везде считать сумму для верхних упровней... Может всетаки как-то структуру поменять?
Konst_One
Дата: 18.11.2009 17:48:58
считайте свои суммы только по товарам , у которых: КодРодителяМеста = NULL
а.четакова
Дата: 18.11.2009 17:51:20
MasterZ
а.четакова
А зачем вам менять структуру? если вам НЕ нужны данные в поле КолИчество для парент-записей, то и не пишите их туда. Если эти данные вам в самом поле нужны, но при этом требуется, чтобы они (эти парент-количества) не учитывались ГДЕ-ТО при суммировании - то там их и не учитывать. Если под "где-то" подразумевается суммирующий запрос, то в нем можно суммировать только самые внутренние полиэтиленовые мешочки - т.е. только те записи, которые никому не являются парентами.


Получается нужно следить за тем, чтобы данные хранились на самом нижнем уровне иерархии и в запросах везде считать сумму для верхних упровней... Может всетаки как-то структуру поменять?
для того, чтобы в запросах считать сумму только для верхних уровней, следить ни за чем не нужно - верхние уровни можно отобрать в самом суммирующем запросе.
а.четакова
Дата: 18.11.2009 18:02:39
вот они, например:
select * from ТаблицаМесто where КодМеста not in 
(select КодРодителяМеста from ТаблицаМесто where КодРодителяМеста is not null)
суммируйте их