Tabella Ingredienti
Ing1
Ing2
Ing3
Ing4
e da una tabella che determina il "passo"
Tabella Passo
0.10
0.20
0.30
..
1.00
Come posso trovare tutte le combinazioni degli X ingredienti
vorrei capire quale query utilizzare per trovare tutte le combinazioni,
con Access avrei inserito le due tabelle in query designer e senza
linkare le due tabelle avrei ottenuto un'esplosione di tutte le
combinazioni... ma con SQL Server e con tutti gli ingredienti in un
unica tabella come posso fare?
Grzie
Ciao Lucia,
se ho capito bene la tua esigenza quello che cerchi è un semplice prodotto
cartesiano tra le righe delle due tabelle.
Puoi ottenere questo risultato specificando le due tabelle nella clausola
FROM senza specificare alcuna clausola WHERE (esattamente come in Access)
oppure ricorrendo all'operatore CROSS JOIN:
USE tempdb;
CREATE TABLE dbo.Ingredienti(
Ingrediente char(4) NOT NULL
);
CREATE TABLE dbo.Passi(
Passo decimal(3,2) NOT NULL
);
INSERT dbo.Ingredienti VALUES('Ing1');
INSERT dbo.Ingredienti VALUES('Ing2');
INSERT dbo.Ingredienti VALUES('Ing3');
INSERT dbo.Ingredienti VALUES('Ing4');
INSERT dbo.Passi VALUES(0.10);
INSERT dbo.Passi VALUES(0.20);
INSERT dbo.Passi VALUES(0.30);
INSERT dbo.Passi VALUES(0.40);
INSERT dbo.Passi VALUES(0.50);
INSERT dbo.Passi VALUES(0.60);
INSERT dbo.Passi VALUES(0.70);
INSERT dbo.Passi VALUES(0.80);
INSERT dbo.Passi VALUES(0.90);
INSERT dbo.Passi VALUES(1.00);
/* Soluzione 1 */
SELECT *
FROM dbo.Ingredienti, dbo.Passi;
/* Soluzione 2 */
SELECT *
FROM dbo.Ingredienti
CROSS JOIN dbo.Passi;
/* Output:
Ingrediente Passo
----------- ---------------------------------------
Ing1 0.10
Ing1 0.20
Ing1 0.30
Ing1 0.40
Ing1 0.50
Ing1 0.60
Ing1 0.70
Ing1 0.80
Ing1 0.90
Ing1 1.00
Ing2 0.10
Ing2 0.20
Ing2 0.30
Ing2 0.40
Ing2 0.50
Ing2 0.60
Ing2 0.70
Ing2 0.80
Ing2 0.90
Ing2 1.00
Ing3 0.10
Ing3 0.20
Ing3 0.30
Ing3 0.40
Ing3 0.50
Ing3 0.60
Ing3 0.70
Ing3 0.80
Ing3 0.90
Ing3 1.00
Ing4 0.10
Ing4 0.20
Ing4 0.30
Ing4 0.40
Ing4 0.50
Ing4 0.60
Ing4 0.70
Ing4 0.80
Ing4 0.90
Ing4 1.00
(40 row(s) affected)
*/
DROP TABLE dbo.Ingredienti, dbo.Passi;
> Grzie
Prgo :-)
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
Ciao Lucia,
Un dubbio: come posso ottenere le combinazioni degli X ingredienti?
Intendo, se ho X righe nella tabella (esempio 3), io devo calcolare
tutte le combinazioni dei gruppi di 3 ingredienti.
Cioè, se devo ottenere 10 grammi, devo trovare tutte le combinazioni di
3 ingredienti (esempio con passo da 1 grammo) per ottenere 10 grammi
Ing1 -> 10
Ing2 -> 0
Ing3 -> 0
Ing1 -> 8
Ing2 -> 1
Ing3 -> 1
....
quello che voglio ottenere è l'elenco delle combinazioni, alle quali poi
dovrò applicare filtri per elimare quelle sicuramente errate
Grazie
Ciao Lucia, hai già aperto un po' di thread sull'argomento:
2 qui:
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/7f29ae0ddd131dbd/
e:
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/47cf6e2e889acd84/
e, credo, anche uno su asp.net
http://groups.google.it/group/microsoft.public.it.dotnet.asp/browse_thread/thread/3537f5e63450504d/
c'è anche questo:
http://groups.google.it/group/microsoft.public.sqlserver.server/browse_thread/thread/b2c52495c21f6f04/
e credo basta ;-)
Ricordati che c'è la possibilità che forse nessuno sa darti una
risposta o che i "pazzi" che scrivono query per ogni uso magari hanno
preso qualche giorno di ferie :-D
Quindi non credo che sia una buona cosa sollecitare ulteriormente... se
qualcuno avrà una risposta te lo farà sapere.
Ciao!
--
VeroToad, MVP Windows - Shell/User
My MVP Profile: http://mvp.support.microsoft.com/profile/Simone.Vigano
My Blog: http://blogs.dotnethell.it/VeroToad