Salve a tutti, e complimenti per il forum, che seguo da qualche tempo.
Mi sono deciso ad iscrivermi ed a postare perché ho un problema sul quale stò battendo la testa da qualche giorno, e spero che qualcuno possa aiutarmi.
Premetto che non sono un programmatore, ma cerco di fare del mio meglio...
Parliamo di MS SQL 2005, su Windows Server 2003R2
Sto cercando di scrivere una query che mi estragga i dati, incrociandoli da due tabelle:
PRODORDER, che contiene un elenco di ordini (e dove il numero di ordine è chiave primaria)
BOM, che contiene l'elenco dei particolari e delle operazioni che compongono l'ordine.
Nella seconda tabella possono essere presenti svariati record legati allo stesso ordine. questi record sono caratterizzati da degli ID operazione.
Le tabelle sono strutturate in questo modo:
PRODORDER
AUFNR ZSDMODCODE MATNR GAMNG
-------- --------------------------------- --------------- ------
5947133 xxx3yy/zzRabcdefghijklmnop/qrstu aaa.bb.ccc.dd 2
5954096 xxx3yy/zzRdefghijklmnopqrs/tuvwx 12345678 6
5959053 xxx3yy/zzRghijklmnopqrstuv/wxyza 23456789 15
5960458 xxx2yy/zzRjklmnopqrstuvwxy/zabcd 34567890 2
5966239 xxx4yy/zzLmnopqrstuvwxyzab/cdefg eee.ff.ggg.hh 1
BOM
AUFNR MATNR POSNR MAKTX
-------- ------------ ------ ---------------------------------------
5947133 MARK-03 9999 SEE STD002
5966239 empty 9500 Codice da punzonare: AA/12345678/BBB
5966239 MARK-09 9999 SEE STD002
5954096 empty 9500 Codice da punzonare: PIPPO A12345678
5954096 MARK-24A 9999 SEE STD002
5959053 MARK-26A 9999 SEE STD002
5959053 empty 9500 Codice da punzonare: PIPPO 13579
5960458 MARK-03 9999 SEE STD002
Come si può notare, nella tabella BOM il campo AUFNR non è sempre univoco.
Il record che presenta il campo POSNR = 9999 è sempre presente, in alcuni casi è presente anche quello =9500. (Ovviamente ce ne sono altri, ho semplificato le tabelle al massimo)
Quello che vorrei ottenere è una tabella che mi restituisca una sola riga per ogni ordine.
Sono riuscito, dopo vari tentativi, ad estrarre i codici che hanno sia il record con POSNR uguale a 9500 che 9999.
Ottenendo questo risultato:
In questa tabella mancano tutti i codici che non hanno un record con campo POSNR = 9500, quello che vorrei ottenere è che anche questi comparissero, con i campi ID_BOM e ALTERNATIVE_CODE come NULL.
Una cosa così:
C'è qualcuno che abbia qualche idea su come fare?