The list of items numbers are 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20. In the group table, it would be listed like this:
G1, Group1, 1,,
G1, Group1, 6,,
G2, Group2, ,2,5
G3, Group3,6,18,20
G3, Group3,7,15,17
G3, Group3,8,14,16
G3, Group3,9,11,13
In this example, Group1 is a list, group2 is a range, and group3 is a list of ranges. I can make a query that pulls all the items just in the groups:
SELECT ECC_ITEMS.NBR, Group.Group_Name, Group.Title, ECC_ITEMS.DESCR, ECC_ITEMS.REG_PRC
FROM Group, ECC_ITEMS
WHERE ECC_ITEMS.NBR Between Group.RangeLow And Group.RangeHigh Or ECC_ITEMS.NBR=Group.GroupItems
Now, I am not sure how to put the rest of the items (the ones that aren't in a group) in that query. I was thinking on making a union and the second query being a unmatched query. Not sure how to make it were that query is "unmatched" with a table in the same query. And ideas on how to make the second part of the union query?Can you elaborate on your need a bit more. It is unclear from your first post.|||Sorry about that. I think there is alot of information there. Here is what I have so far in terms of querys. I would like to combind them and make a DTS.
ECC_ITEMS:
SELECT ITEM.NBR, ITEM.DESCR, ITEM.DESC_LIN_1, ITEM.DESC_LIN_2, ITEM.TYP, ITEM.USR_DEF_1, ITEM.CAT, ITEM.SUB_CAT, ITEM.USR_DEF_4, ITEM.ECOMMERCE_FLG, ITEM.TXBL_FLG, ITEM.TAX_COD, ITEM.WEIGHT, ITEM.STAT, ITEM.REG_PRC, ITEM.PRC_UNIT
FROM ITEM
WHERE (((ITEM.USR_DEF_4)="SU04" Or (ITEM.USR_DEF_4)="FA04"));
GroupandRange:
SELECT ECC_ITEMS.NBR, Group.Group_Name, Group.Title, ECC_ITEMS.DESCR, ECC_ITEMS.REG_PRC
FROM [Group], ECC_ITEMS
WHERE (((ECC_ITEMS.NBR) Between Group.RangeLow And Group.RangeHigh Or (ECC_ITEMS.NBR)=Group.GroupItems));
SingleItems:
SELECT ECC_ITEMS.NBR, 0 AS Sing, ECC_ITEMS.DESCR, ECC_ITEMS.DESC_LIN_1, ECC_ITEMS.REG_PRC
FROM ECC_ITEMS LEFT JOIN GroupandRange ON ECC_ITEMS.NBR = GroupandRange.NBR
WHERE (((GroupandRange.NBR) Is Null));
UnionQuery:
SELECT GroupandRange.Group_Name, GroupandRange.Title, Count(GroupandRange.DESCR) AS CountOfDESCR, Min(GroupandRange.REG_PRC) AS MinOfREG_PRC, Max(GroupandRange.REG_PRC) AS MaxOfREG_PRC
FROM GroupandRange
GROUP BY GroupandRange.Group_Name, GroupandRange.Title
union
SELECT SingleItems.NBR, SingleItems.DESCR, Count(SingleItems.Sing) As CountOf, Min(SingleItems.REG_PRC) as MinOfReg_Prc, Max(SingleItems.REG_PRC) as MaxOfReg_PRC
FROM SingleItems
Group By SingleItems.NBR, SingleItems.DESCR;
It looks like alot, but I think it can be done, just not sure how. Thanks for looking into this.|||This is what I came up with. It seems to be working very well.
SELECT ItemGroups.Title, ItemGroups.Group_Name, ITEM.NBR, ITEM.DESCR, ITEM.TYP, ITEM.USR_DEF_1, ITEM.CAT, ITEM.SUB_CAT, ITEM.USR_DEF_4,
ITEM.ECOMMERCE_FLG, ITEM.TXBL_FLG, ITEM.TAX_COD, ITEM.WEIGHT, ITEM.STAT, ITEM.REG_PRC, ITEM.PRC_UNIT
FROM ITEM CROSS JOIN
ItemGroups
WHERE (ITEM.NBR BETWEEN ItemGroups.RangeLow AND ItemGroups.RangeHigh) OR
(ITEM.NBR = ItemGroups.GroupItems)
union
SELECT DESCR as Title, NBR as GroupName, NBR, DESCR, TYP, USR_DEF_1, CAT, SUB_CAT, USR_DEF_4, ECOMMERCE_FLG, TXBL_FLG,
TAX_COD, WEIGHT, STAT, REG_PRC, PRC_UNIT
FROM ITEM
WHERE (NOT (NBR IN
(SELECT ITEM.NBR
FROM ITEM CROSS JOIN
ItemGroups
WHERE (ITEM.NBR BETWEEN ItemGroups.RangeLow AND ItemGroups.RangeHigh) OR
(ITEM.NBR = ItemGroups.GroupItems))))
No comments:
Post a Comment