Avatar billede tvbrandt Nybegynder
10. juni 2004 - 21:00 Der er 53 kommentarer og
2 løsninger

3 tabellers data

Er der en der kan hjælpe med at hente noget data ud fra tre forskellige tabeller der har relation.

Det ser ud som følger:
entreprenørTabel indeholder
  e_id, navn

udbudsTabel indeholder
  u_id, e_id_1, vundet_1, pris_1, e_id_2, vundet_2, pris_2, e_id_3, vundet_3, pris_3, e_id_4, vundet_4, pris_4

sagsTabel indeholder
  s_id, journalNr, udbudsdato, u_id

udbudsTabel.e_id_1, udbudsTabel.e_id_2, udbudsTabel.e_id_3, udbudsTabel.e_id_4 refererer altså til entreprenørTabel.e_id
sagsTabel.u_id refererer til udbudsTabel.u_id

Jeg vil så gerne have følgende ud i en rapport:
1. Alle entreprenørnavne (entreprenørTabel.navn)
2. Oplysning om de har budt på en sag (kan ses ud fra om pris_1, pris_2, pris_3, pris_4 er større end nul og så er der jo et e_id_1, e_id_2, e_id_3, e_id_4 der refererer til e_id i entreprenørTabellen)
3. Oplysning om entreprenøren har vundet den sag de har budt på i form af et ja eller nej
Avatar billede kabbak Professor
10. juni 2004 - 21:13 #1
Har du en demo base med tabellerne i, så vil jeg godt prøve.

sendtil#kabbak@tiscali.dk

fjern sendtil#
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 21:16 #2
øjeblik så sender jeg den som zip
Avatar billede kabbak Professor
10. juni 2004 - 21:17 #3
ok
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 21:20 #4
er sendt
Avatar billede kabbak Professor
10. juni 2004 - 21:24 #5
er modtaget
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 21:39 #6
er der hoved og hale i det?
Avatar billede terry Ekspert
10. juni 2004 - 21:40 #7
hows it going kabbak? If you need a little assistance then drop a comment :o)
Avatar billede kabbak Professor
10. juni 2004 - 21:54 #8
Jaa, her er et par forslag

SELECT entreprenørTabel.navn, udbudsTabel.vundet_1, udbudsTabel.pris_1, udbudsTabel_1.vundet_2, udbudsTabel_1.pris_2, udbudsTabel_2.vundet_3, udbudsTabel_2.pris_3, udbudsTabel_3.vundet_4, udbudsTabel_3.pris_4, udbudsTabel_4.vundet_5, udbudsTabel_4.pris_5, udbudsTabel_5.vundet_6, udbudsTabel_5.pris_6
FROM udbudsTabel AS udbudsTabel_5 RIGHT JOIN (udbudsTabel AS udbudsTabel_4 RIGHT JOIN (udbudsTabel AS udbudsTabel_3 RIGHT JOIN (udbudsTabel AS udbudsTabel_2 RIGHT JOIN (udbudsTabel AS udbudsTabel_1 RIGHT JOIN (entreprenørTabel LEFT JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_1) ON udbudsTabel_1.e_id_2 = entreprenørTabel.e_id) ON udbudsTabel_2.e_id_3 = entreprenørTabel.e_id) ON udbudsTabel_3.e_id_4 = entreprenørTabel.e_id) ON udbudsTabel_4.e_id_5 = entreprenørTabel.e_id) ON udbudsTabel_5.e_id_6 = entreprenørTabel.e_id;

og

SELECT udbudsTabel.u_id, entreprenørTabel.navn, udbudsTabel.vundet_1, udbudsTabel.pris_1, entreprenørTabel_1.navn, udbudsTabel.vundet_2, udbudsTabel.pris_2, entreprenørTabel_2.navn, udbudsTabel.vundet_3, udbudsTabel.pris_3, entreprenørTabel_3.navn, udbudsTabel.vundet_4, udbudsTabel.pris_4, entreprenørTabel_4.navn, udbudsTabel.vundet_5, udbudsTabel.pris_5, entreprenørTabel_5.navn, udbudsTabel.vundet_6, udbudsTabel.pris_6
FROM entreprenørTabel AS entreprenørTabel_5 INNER JOIN (entreprenørTabel AS entreprenørTabel_4 INNER JOIN (entreprenørTabel AS entreprenørTabel_3 INNER JOIN (entreprenørTabel AS entreprenørTabel_2 INNER JOIN (entreprenørTabel AS entreprenørTabel_1 INNER JOIN (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_1) ON entreprenørTabel_1.e_id = udbudsTabel.e_id_2) ON entreprenørTabel_2.e_id = udbudsTabel.e_id_3) ON entreprenørTabel_3.e_id = udbudsTabel.e_id_4) ON entreprenørTabel_4.e_id = udbudsTabel.e_id_5) ON entreprenørTabel_5.e_id = udbudsTabel.e_id_6
GROUP BY udbudsTabel.u_id, entreprenørTabel.navn, udbudsTabel.vundet_1, udbudsTabel.pris_1, entreprenørTabel_1.navn, udbudsTabel.vundet_2, udbudsTabel.pris_2, entreprenørTabel_2.navn, udbudsTabel.vundet_3, udbudsTabel.pris_3, entreprenørTabel_3.navn, udbudsTabel.vundet_4, udbudsTabel.pris_4, entreprenørTabel_4.navn, udbudsTabel.vundet_5, udbudsTabel.pris_5, entreprenørTabel_5.navn, udbudsTabel.vundet_6, udbudsTabel.pris_6;


i hvilken retning skal vi. ?
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 21:57 #9
tester lige
Avatar billede kabbak Professor
10. juni 2004 - 22:06 #10
Den er svær, jeg ville nok have valgt en anden udformning af udbudsTabel

u_id
e_id
pris
vundet
Tilbud_Nr  ( et nummer fra 1 til 6)
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:07 #11
Jeg vil umiddelbart sige at det er det første forslag vi skal videre med.
Den oplyser om
- alle entreprenører
- hvem der har vundet dog uden journalnummer (og det vil jeg gerne have oplyst)
- hvilke sager entreprenørerne har budt på i form af deres tilbudspris

Det jeg umiddelbart mangler er at jeg gerne vil have
- journalnummeret oplyst jf ovenstående
- kan man ikke gøre det så man lister entreprenøren og derunder de sager de har budt på. Se dette eksempel:

Entreprenørnavn  Journalnr  Budt  Vundet
CEG
                  1002-20-2  Ja    Ja
KF
                  1002-20-2  Ja    Nej
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:09 #12
jeg forstår ikke helt dit Tilbud_Nr  ( et nummer fra 1 til 6)
Avatar billede terry Ekspert
10. juni 2004 - 22:10 #13
Here is an idea
Make a UNION query which contains four (4) sub SELECTS containing
sagsTabel s_id, journalNr, udbudsdato, u_id with JOIN on udbudsTabel u_id, e_id_X, vundet_X (X = 1 to 4 for each SUB select)
which JOINs to entreprenørTabel e_id, navn

when that is done you have a "normalized" table.

Now make a report where you group on s_id and sorts on s_id  and vundet DESC so that the one which won comes first.

Just and idea!
Avatar billede kabbak Professor
10. juni 2004 - 22:12 #14
du gentager jo felterne 6 gange i tabellen, bare med et tal til sidst.

Det er svært at lave en forespørgsel på, derfor et felt der styrer tilbudsnummer.
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:15 #15
vil det sige at du så ville lave en ekstra tabel der håndterer tilbudsnumre?
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:16 #16
Terry: Vil du have dansk eller engelsk fra min side
Avatar billede kabbak Professor
10. juni 2004 - 22:20 #17
u_id    ef_id    e_id_1    vundet_1    pris_1    forbehold_1    Tilbud_nr
10    3    4    SAND    kr 3.174.490,00        1
10    3    6    FALSK    kr 3.634.200,00        2
10    3    7    FALSK    kr 4.784.457,00        3
10    3    5    FALSK    kr 3.256.124,00        4
10    3    11    FALSK    kr 0,00                    5
10    3    11    FALSK    kr 0,00                6
11    3    8    FALSK    kr 55.800,00        1
11    3    9    FALSK    kr 43.775,00        2
11    3    10    SAND    kr 40.975,00        3
11    3    11    FALSK    kr 0,00                4
11    3    11    FALSK    kr 0,00                5
11    3    11    FALSK    kr 0,00                6
12    3    8    FALSK    kr 50.800,00        1
12    3    9    SAND    kr 36.600,00        2
12    3    10    FALSK    kr 37.500,00        3
12    3    11    FALSK    kr 0,00                4
12    3    11    FALSK    kr 0,00                5
12    3    11    FALSK    kr 0,00                6

Nu ved jeg ikke hvordan det ser ud nor det er sendt, men her er ideen
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:20 #18
Terry, could you please explain a bit further. I'm not that good at Access
Avatar billede terry Ekspert
10. juni 2004 - 22:21 #19
I'm fine withDanish, but I'm off for the evening now.

If you use my idea then you can use the IIF() function to give

IIF(pris_X > 0, 'Budt', 'Ikke Budt)
or something like that

Now I'm off

Night :o)
Avatar billede kabbak Professor
10. juni 2004 - 22:23 #20
u_id    ef_id    e_id    vundet    pris    forbehold    Tilbud_nr

det var sådan felterne skulle hedde
Avatar billede kabbak Professor
10. juni 2004 - 22:24 #21
men så kan du ikke køre med autonummering mere
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:25 #22
Altså så kolonnerne er:
u_id  ef_id  e_id  vundet  pris  forbehold  tilbud_nr
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:26 #23
hvad vil det komme til at betyde sådan ren praktisk at jeg ikke har autonummerering og skal man ikke have det?
Avatar billede kabbak Professor
10. juni 2004 - 22:30 #24
Nej det behøves ikke hvis du selv kan styre nøglen.

i dette eksempel er nøglen 2 felter

u_id  og Tilbud_nr
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:35 #25
vil det så stadig være lige let at indtaste i formularerne
Avatar billede kabbak Professor
10. juni 2004 - 22:41 #26
ja, men så skal du kun skrive et tilbud ind af gangen og så styre tilbudsnummer
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:41 #27
hvordan kombinerer man en nøgle til at bestå af de to
Avatar billede kabbak Professor
10. juni 2004 - 22:42 #28
men prøv at sende en kopi til terry, han er nok den bedste på access området.
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:43 #29
hvad mener du med at "styre tilbudsnummer", skal man så selv indtaste tilbudsnummeret manuelt?
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 22:44 #30
Terry, hvad siger du til det
Avatar billede kabbak Professor
10. juni 2004 - 22:51 #31
man kan, godt få access til at finde det næste nummer automatisk.

men hvis du skiftede u_id  ud med journalNr så har du et godt link

det med nøgle, der makerer man de felter der skal indgå i nøglen, køjreklik og vælg primær nøgle, i designvisning selvfølgelig.
Avatar billede kabbak Professor
10. juni 2004 - 22:57 #32
jeg har ikke mere tid i aften, men jeg følger med i spørgsmålet, ellers bliver det først til weekenden, jeg har tid.
Avatar billede tvbrandt Nybegynder
10. juni 2004 - 23:01 #33
ok tak for nu
Avatar billede terry Ekspert
11. juni 2004 - 08:47 #34
Morning!
I'm busy all morning, but I'll try and read through all the comments to get up-to-date. Then I'll see if I can put something together for you. Thats if no other answers have been given.

mvh
terry
Avatar billede tvbrandt Nybegynder
11. juni 2004 - 08:51 #35
det ville være kanon
Avatar billede terry Ekspert
11. juni 2004 - 13:20 #36
I hope this looks OK when I paste it in :o)

The way I am looking at this is maybe not the same as kabbak, so I think we need to clear up what exactly you want to see on the report.

And maybe a look at your dB will help too. Can you send it to eksperten@NOSPAMsanthell.dk (remove NOSPAM)



I invisage something like this.


sagsTabel s_id     journalNr    udbudsdato
      1    1234        10-06-2004
------------------------------------------------------
        e_id    navn        Pris    Vundet
        1    entreprenør1    400,000  Ja
        2    entreprenør2    500,000  Nej
        4    entreprenør4    550,000  Nej


sagsTabel s_id     journalNr    udbudsdato
      2    12345        11-06-204
------------------------------------------------------
        e_id    navn        Pris    Vundet
        2    entreprenør2    100,000  Ja
        4    entreprenør4    250,000  Nej
        1    entreprenør1    300,000      Nej




But this is also possible


entreprenør     e_id    navn
        1    entreprenør1
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    400,000    Ja
        2    12345        11-06-2004    300,000    Nej
   
entreprenør     e_id    navn
        2    entreprenør2
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    500,000    Nej
        2    12345        11-06-2004    100,000    Ja
Avatar billede tvbrandt Nybegynder
11. juni 2004 - 13:37 #37
Det er dit andet forslag der er gældende.

entreprenør    e_id    navn
        1    entreprenør1
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    400,000    Ja
        2    12345        11-06-2004    300,000    Nej
   
entreprenør    e_id    navn
        2    entreprenør2
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    500,000    Nej
        2    12345        11-06-2004    100,000    Ja


Sender db med det samme
Avatar billede terry Ekspert
11. juni 2004 - 14:31 #38
I'll take a look as soon as possible
Avatar billede terry Ekspert
11. juni 2004 - 17:43 #39
Here is an SQL you can use to select the information needed for th ereport. You can then make a report Grouping on entreprenør


SELECT tblAlias.navn, tblAlias.journalNr, tblAlias.udbudsdato, tblAlias.Pris, IIf([Vundet],"Ja","Nej") AS VundetJaNej
FROM [SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_1 AS Pris, udbudsTabel.vundet_1 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_1) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_1 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_2 AS Pris, udbudsTabel.vundet_2 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_2) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_2 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_3 AS Pris, udbudsTabel.vundet_3 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_3) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_3 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_4 AS Pris, udbudsTabel.vundet_4 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_4) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_4 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_5 AS Pris, udbudsTabel.vundet_5 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_5) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_5 >0
UNION SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_6 AS Pris, udbudsTabel.vundet_6 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_6) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_6 >0]. AS tblAlias
ORDER BY tblAlias.navn, IIf([Vundet],"Ja","Nej");
Avatar billede terry Ekspert
11. juni 2004 - 17:44 #40
Hope its what you wanted!
Avatar billede tvbrandt Nybegynder
11. juni 2004 - 21:37 #41
Denne giver mig følgende oplysninger:
entreprenør    e_id    navn
        1    entreprenør1
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    400,000    Ja
        2    12345        11-06-2004    300,000    Nej
   
entreprenør    e_id    navn
        2    entreprenør2
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    500,000    Nej
        2    12345        11-06-2004    100,000    Ja


Men den viser kun de entreprenører der har budt. Jeg ville gerne have den til at vise alle entreprenører. Altså både dem der har budt og også dem der ikke har budt. Dem der ikke har budt skal bare nævnes. Altså således:

entreprenør    e_id    navn
        1    entreprenør1
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    400,000    Ja
        2    12345        11-06-2004    300,000    Nej
   
entreprenør    e_id    navn
        2    entreprenør2
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    500,000    Nej
        2    12345        11-06-2004    100,000    Ja

entreprenør    e_id    navn
        3    entreprenør3
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet

entreprenør    e_id    navn
        4    entreprenør4
------------------------------------------------------
        s_id    journalNr    udbudsdato    Pris    Vundet
        1    1234        10-06-2004    500,000    Nej
        2    12345        11-06-2004    100,000    Nej


Undskyld hvis dette ikke var klart i starten, men det troede jeg.

Du siger samtidig: "You can then make a report Grouping on entreprenør". Vil det sige at jeg i rapport-delen skal lave en funktion der gør at den lister entreprenørnavnet én gang og derunder listes de sager entreprenøren har budt på?

I øvrigt synes jeg det er en vildt imponerende SELECT-UNION du har udarbejdet.

Hvad gør tblAlias.navn?
Avatar billede terry Ekspert
12. juni 2004 - 11:02 #42
I had an idea that you also wanted to see those with NO offers, but didnt want to do any work which may not have been necessary (I'm lazy) :o)

Anyway, here's a solution which I think works OK!

SELECT tblAlias.navn, tblAlias.journalNr, tblAlias.udbudsdato, tblAlias.Pris, IIf([Vundet],"Ja","Nej") AS VundetJaNej
FROM [SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_1 AS Pris, udbudsTabel.vundet_1 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_1) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_1 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_2 AS Pris, udbudsTabel.vundet_2 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_2) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_2 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_3 AS Pris, udbudsTabel.vundet_3 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_3) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_3 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_4 AS Pris, udbudsTabel.vundet_4 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_4) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_4 >0
UNION
SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_5 AS Pris, udbudsTabel.vundet_5 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_5) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_5 >0
UNION SELECT sagsTabel.journalNr, sagsTabel.udbudsdato, sagsTabel.arbNavn, sagsTabel.adresse, entreprenørTabel.navn, entreprenørTabel.kommune, udbudsTabel.pris_6 AS Pris, udbudsTabel.vundet_6 AS Vundet
FROM (entreprenørTabel INNER JOIN udbudsTabel ON entreprenørTabel.e_id = udbudsTabel.e_id_6) INNER JOIN sagsTabel ON udbudsTabel.u_id = sagsTabel.u_id WHERE udbudsTabel.pris_6 >0
UNION SELECT Null AS journalNr, Null AS udBudsdato, Null AS arbNavn, Null AS adresse, entreprenørTabel.navn, Null AS kommune, Null AS Pris, Null AS Vundet
FROM (((((entreprenørTabel LEFT JOIN udbudsTabel AS T2 ON entreprenørTabel.e_id = T2.e_id_2) LEFT JOIN udbudsTabel AS T3 ON entreprenørTabel.e_id = T3.e_id_3) LEFT JOIN udbudsTabel AS T6 ON entreprenørTabel.e_id = T6.e_id_4) LEFT JOIN udbudsTabel AS T4 ON entreprenørTabel.e_id = T4.e_id_5) LEFT JOIN udbudsTabel AS T5 ON entreprenørTabel.e_id = T5.e_id_6) LEFT JOIN udbudsTabel AS T1 ON entreprenørTabel.e_id = T1.e_id_1
WHERE (((T1.e_id_1) Is Null) AND ((T2.e_id_2) Is Null) AND ((T3.e_id_3) Is Null) AND ((T6.e_id_4) Is Null) AND ((T4.e_id_5) Is Null) AND ((T5.e_id_6) Is Null));
]. AS tblAlias
ORDER BY tblAlias.navn, IIf([Vundet],"Ja","Nej");



When you make a report (using th ereport wizard) you can choose one or more fields which you want to group on. So if you choose the "entreprenør" fields the report will give you what you want. You can try it and see.

You ask "Hvad gør tblAlias.navn?"
If you look at the end of the UNION select you will see "AS tblAlias". tblAlias is just a TEMP table (in memory) which is created when I make a SELECT from the result of another SELECT (The SELECT-UNION)


Anyway I hope this is what you want now. I'll take a look during the weekend to see if you need further help.

Mvh
Terry
(SELECT tblAlias.navn, .... FROM [SELECT....
Avatar billede terry Ekspert
12. juni 2004 - 11:03 #43
Not sure where thelast line came from :o)
Avatar billede tvbrandt Nybegynder
12. juni 2004 - 11:19 #44
det ser ud til at virke, men jeg har desværre ikke så meget tid før efter 14 i dag, så jeg vender tilbage med et svar.
Avatar billede terry Ekspert
12. juni 2004 - 11:20 #45
If you can use my solution then I think you should concider giving kabbak some of the points, he did use some time trying to help too!
Avatar billede terry Ekspert
12. juni 2004 - 11:21 #46
Didnt see your comment 11:19:04
No problem
og god weekend
Avatar billede tvbrandt Nybegynder
12. juni 2004 - 14:24 #47
Det her er helt kanon. Det havde jeg ALDRIG selv fundet ud af. 1000 tak for hjælpen, både til kabbak og Terry. Jeg vil gerne give kabbak nogle af pointene også, så:
kabbak ligger du ikke lige et svar
Avatar billede terry Ekspert
12. juni 2004 - 14:41 #48
Happy to see its working as you wanted.
Just a little comment. It may be an idea to change your udbudsTale. At the moment it has a one-to-one relationship with sagsTabel. In fact it should be a many-to-many table with a relationship to sagsTable and entreprenørTable.

EXAMPLE:
sagsTable
S_id (primary key)
journalNr
.
.

udBudsTable (s_id and e_id = primary key)
s_id (foreign key references sagsTable.s_id)
e_id (foreign key references entreprenørTable.e_id)
Pris
Vundet
.
.

entreprenørTable
e_id
Navn
.
.


This now allows you to have as many offers (bud) as you want for each case (sag) and its is MUCH easier to make queries.

mvh
Terry
Avatar billede tvbrandt Nybegynder
12. juni 2004 - 14:57 #49
Bare lige for at være sikker på hvad du mener.
1. Jeg skal ændre relationen mellem udbudsTabel og sagsTabel fra 1:1 til *:*
2. Jeg skal ændre relationen mellem udbudsTabel og entreprenørTabel fra 1:1 til *:*
3. Jeg skal slette u_id i udbudsTabel og lave s_id og e_id som kombineret primærnøgle.
Avatar billede terry Ekspert
12. juni 2004 - 17:25 #50
1+2: Yes. But a many to many relationship is only possible by having three tables, which you have already. The middle (link) table make a many-to-many possible.

3:Yes. Then th eprimary key will also make sure that an entreprenør can only give one bud for a sag.
Avatar billede tvbrandt Nybegynder
12. juni 2004 - 20:42 #51
ok det vil jeg kigge på i løbet af i morgen og vender så tilbage. Du skal nok få dine point. Venter bare lige på kabbak.
Avatar billede terry Ekspert
12. juni 2004 - 22:59 #52
OK :o)
Avatar billede kabbak Professor
13. juni 2004 - 21:32 #53
terry > jeg fatter ikke hvordan den sql er sat sammen, men godt gjort.

tvbrandt > giv terry alle point, de er velfortjent. ;-))
Avatar billede tvbrandt Nybegynder
14. juni 2004 - 08:35 #54
OK kabbak, de er fortjent, men også tak for hjælpen til dig.
Terry, jeg nåede ikke lige maskinen i går, men forsøger det i dag, men du får i hvert tilfælde dine point for det andet. Tak for hjælpen
Avatar billede terry Ekspert
14. juni 2004 - 17:46 #55
Thanks to you both :o)
kabbak>If you want an explanation to how the SQL is put together then let me know and I'll try and explain.
mvh
Terry
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester